def setupUserTypeCombo(self): self.tr("teacher","plural") self.tr("student","plural") self.tr("parent","plural") self.tr("other","plural") usertypeids = userdef.list_usertypes_by_id() self.cmb_usertype_filter.addItem(self.tr("All","plural users"),QtCore.QVariant(-1)) for i in usertypeids: self.cmb_usertype_filter.addItem( self.tr(userdef.usertype_as_text(i),"plural"), QtCore.QVariant(i)) self.connect(self.cmb_usertype_filter,QtCore.SIGNAL('activated(int)'),self.updateUserView)
def list_users(self,usertype,uid=None): if uid==None: uid = '*' usertype_ids = userdef.list_usertypes_by_id() usertype_objectclasses = {} for id in usertype_ids: usertype_objectclasses[id] = ldapdef.objectclass_by_usertype(id) + ['sambaSamAccount'] path = conf.get('LDAPSERVER','basedn') if usertype: path = ldapdef.basedn_by_usertype(usertype) if not path: return {} res = self.l.search(path,ldap.SCOPE_SUBTREE,'(& (uid=%s)(objectclass=posixaccount)(objectclass=person))' % uid ,[]) user_dict = {} while 1: sres = self.l.result(res,0) if sres[1]==[]: break if not sres[1][0][1].has_key('uid'): continue uid = sres[1][0][1]['uid'][0] user_dict[uid] = {} user_dict[uid]['dn'] = sres[1][0][0] for (k,v) in sres[1][0][1].items(): if k=='objectClass': for usertype_id,objectclasses in usertype_objectclasses.items(): had_all_classes = True for objcls in objectclasses: if not v.count(objcls): had_all_classes = False break if had_all_classes == True: user_dict[uid]['usertype_id'] = usertype_id break continue if len(v)==1: user_dict[uid][k] = v[0] else: user_dict[uid][k] = v return user_dict
def setupNamePage(self): self.connect(self.led_given_name,QtCore.SIGNAL("textChanged(const QString&)"),self.updateNamePage) self.connect(self.led_family_name,QtCore.SIGNAL("textChanged(const QString&)"),self.updateNamePage) self.connect(self.cmb_usertype,QtCore.SIGNAL("activated(int)"),self.updateNamePage) self.tr("teacher") self.tr("student") self.tr("parent") self.tr("other") usertypeids = userdef.list_usertypes_by_id() #self.cmb_usertype.addItem(self.tr("Select user type..."),QtCore.QVariant(-1)) for i in usertypeids: self.cmb_usertype.addItem( self.tr(userdef.usertype_as_text(i)), QtCore.QVariant(i)) self.cmb_usertype.setCurrentIndex(-1) self.sbx_first_school_year.setValue(QtCore.QDate.currentDate().year())