Trees | Indices | Help |
|
---|
|
1 #!/usr/bin/env python 2 # 3 # 4 # 5 # Copyright (c) 2008 University of Dundee. 6 # 7 # This program is free software: you can redistribute it and/or modify 8 # it under the terms of the GNU Affero General Public License as 9 # published by the Free Software Foundation, either version 3 of the 10 # License, or (at your option) any later version. 11 # 12 # This program is distributed in the hope that it will be useful, 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 # GNU Affero General Public License for more details. 16 # 17 # You should have received a copy of the GNU Affero General Public License 18 # along with this program. If not, see <http://www.gnu.org/licenses/>. 19 # 20 # Author: Aleksandra Tarkowska <A(dot)Tarkowska(at)dundee(dot)ac(dot)uk>, 2008. 21 # 22 # Version: 1.0 23 # 24 25 from omero.rtypes import * 26 from omero.model import ExperimenterI, GroupExperimenterMapI 27 28 from webadmin.controller import BaseController 2931 32 experimenters = None 33 experimentersCount = 0 34 auth = None 3571 7237 BaseController.__init__(self, conn) 38 self.experimentersList = list(self.conn.getObjects("Experimenter")) 39 self.experimentersList.sort(key=lambda x: x.getOmeName().lower()) 40 self.auth = self.conn.listLdapAuthExperimenters() 41 self.experimenters = list() 42 self.experimentersCount = {'experimenters': 0, 'active': 0, 'ldap': 0, 'admin': 0, 'guest': 0} 43 for exp in self.experimentersList: 44 isLdap = self.isLdap(exp.id) 45 isActive = exp.isActive() 46 isAdmin = exp.isAdmin() 47 isGuest = exp.isGuest() 48 self.experimenters.append({'experimenter': exp, 'active': isActive, 'ldap':isLdap, 49 'admin': isAdmin, 'guest':isGuest }) 50 if isActive: 51 self.experimentersCount['active'] += 1 52 if isLdap: 53 self.experimentersCount['ldap'] += 1 54 if isAdmin: 55 self.experimentersCount['admin'] += 1 56 if isGuest: 57 self.experimentersCount['guest'] += 1 58 59 self.experimentersCount['experimenters'] = len(self.experimenters)6074 75 experimenter = None 76 defaultGroup = None 77 otherGroups = None 78 ldapAuth = None 79 80 groups = None 8127283 BaseController.__init__(self, conn) 84 if eid is not None: 85 self.experimenter = self.conn.getObject("Experimenter", eid) 86 self.ldapAuth = self.conn.getLdapAuthExperimenter(eid) 87 geMap = self.experimenter.copyGroupExperimenterMap() 88 if self.experimenter.sizeOfGroupExperimenterMap() > 0: 89 self.defaultGroup = geMap[0].parent.id.val 90 else: 91 self.defaultGroup = None 92 self.otherGroups = list() 93 self.others = list() 94 self.default = list() 95 for gem in geMap: 96 if gem.parent.name.val == "user": 97 pass 98 #elif gem.parent.name.val == "system": 99 # pass 100 elif gem.parent.name.val == "guest": 101 pass 102 else: 103 self.otherGroups.append(gem.parent.id.val) 104 self.others.append(gem.parent) 105 self.default.append((gem.parent.id.val, gem.parent.name.val)) 106 self.groups = list(self.conn.getObjects("ExperimenterGroup")) 107 self.groups.sort(key=lambda x: x.getName().lower())108110 formGroups = list() 111 for gr in self.groups: 112 flag = False 113 if gr.name == "user": 114 flag = True 115 elif gr.name == "system": 116 flag = True 117 elif gr.name == "guest": 118 flag = True 119 if gr.id in exclude: 120 flag = True 121 if not flag: 122 formGroups.append(gr) 123 return formGroups124126 if len(ids)>0: 127 return list(self.conn.getObjects("ExperimenterGroup", ids)) 128 return list()129131 self.experimenter = self.conn.getUser() 132 self.ldapAuth = self.conn.getLdapAuthExperimenter(self.conn._userid) 133 self.defaultGroup = self.experimenter.copyGroupExperimenterMap()[0].parent.id.val 134 self.otherGroups = list() 135 for gem in self.experimenter.copyGroupExperimenterMap(): 136 if gem.parent.name.val == "user": 137 pass 138 else: 139 self.otherGroups.append(gem.parent)140142 groupsList = list(self.conn.listOwnedGroups()) 143 self.groups = list() 144 for gr in groupsList: 145 if gr.name == "user" or gr.name == "system" or gr.name == "guest": 146 pass 147 else: 148 self.groups.append({'group': gr, 'permissions': self.getPermissions(gr)}) 149 self.groupsCount = len(self.groups)150151 - def updateMyAccount(self, firstName, lastName, email, dGroup, middleName=None, institution=None):152 up_exp = self.experimenter._obj 153 up_exp.firstName = rstring(str(firstName)) 154 up_exp.middleName = middleName is not None and rstring(str(middleName)) or None 155 up_exp.lastName = rstring(str(lastName)) 156 up_exp.email = rstring(str(email)) 157 up_exp.institution = (institution!="" and institution is not None) and rstring(str(institution)) or None 158 159 defaultGroup = self.conn.getObject("ExperimenterGroup", long(dGroup))._obj 160 self.conn.updateMyAccount(up_exp, defaultGroup)161162 - def createExperimenter(self, omeName, firstName, lastName, email, admin, active, dGroup, otherGroups, password, middleName=None, institution=None):163 new_exp = ExperimenterI() 164 new_exp.omeName = rstring(str(omeName)) 165 new_exp.firstName = rstring(str(firstName)) 166 new_exp.middleName = middleName is not None and rstring(str(middleName)) or None 167 new_exp.lastName = rstring(str(lastName)) 168 new_exp.email = rstring(str(email)) 169 new_exp.institution = (institution!="" and institution is not None) and rstring(str(institution)) or None 170 171 listOfGroups = set() 172 # default group 173 for g in self.groups: 174 if long(dGroup) == g.id: 175 defaultGroup = g._obj 176 break 177 # system group 178 if admin: 179 for g in self.groups: 180 if g.name == "system": 181 sysGroup = g._obj 182 break 183 listOfGroups.add(sysGroup) 184 # user group 185 if active: 186 for g in self.groups: 187 if g.name == "user": 188 userGroup = g._obj 189 break 190 listOfGroups.add(userGroup) 191 # rest of groups 192 for g in self.groups: 193 for og in otherGroups: 194 # remove defaultGroup from otherGroups if contains 195 if long(og) == long(defaultGroup.id.val): 196 pass 197 elif long(og) == g.id: 198 listOfGroups.add(g._obj) 199 return self.conn.createExperimenter(new_exp, defaultGroup, list(listOfGroups), password)200201 - def updateExperimenter(self, omeName, firstName, lastName, email, admin, active, dGroup, otherGroups, middleName=None, institution=None):202 up_exp = self.experimenter._obj 203 up_exp.omeName = rstring(str(omeName)) 204 up_exp.firstName = rstring(str(firstName)) 205 up_exp.middleName = middleName is not None and rstring(str(middleName)) or None 206 up_exp.lastName = rstring(str(lastName)) 207 up_exp.email = rstring(str(email)) 208 up_exp.institution = (institution!="" and institution is not None) and rstring(str(institution)) or None 209 210 # old list of groups 211 old_groups = list() 212 for ogr in up_exp.copyGroupExperimenterMap(): 213 old_groups.append(ogr.parent) 214 215 # create list of new groups 216 new_groups = list() 217 218 # default group 219 for g in self.groups: 220 if long(dGroup) == g.id: 221 defaultGroup = g._obj 222 new_groups.append(defaultGroup) 223 224 # user group 225 if active: 226 for g in self.groups: 227 if g.name == "user": 228 sysGroup = g._obj 229 break 230 new_groups.append(sysGroup) 231 232 # system group 233 if admin: 234 if defaultGroup.name.val != "system": 235 for g in self.groups: 236 if g.name == "system": 237 sysGroup = g._obj 238 break 239 new_groups.append(sysGroup) 240 241 # rest of groups 242 for g in self.groups: 243 for og in otherGroups: 244 if long(og) == g.id and g.name != defaultGroup.name.val: 245 new_groups.append(g._obj) 246 247 add_grs = list() 248 rm_grs = list() 249 250 # remove 251 for ogr in old_groups: 252 flag = False 253 for ngr in new_groups: 254 if ngr.id.val == ogr.id.val: 255 flag = True 256 if not flag: 257 rm_grs.append(ogr) 258 259 # add 260 for ngr in new_groups: 261 flag = False 262 for ogr in old_groups: 263 if ogr.id.val == ngr.id.val: 264 flag = True 265 if not flag: 266 add_grs.append(ngr) 267 268 self.conn.updateExperimenter(up_exp, defaultGroup, add_grs, rm_grs)269
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Tue Jan 24 19:49:31 2012 | http://epydoc.sourceforge.net |