Пример #1
0
	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)
Пример #2
0
	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())