コード例 #1
0
    def editUser(self, uid):
        # Check if the user has propper permissions and present a nice message if not
        # This is ofcourse also checked on the server side.
        may_open = False
        if uid == cm.get_binded_user() and accesstools.check_permission("user.self.modify", False):
            may_open = True
        elif accesstools.check_permission_multi_or(("user.modify", "user.view")):
            may_open = True

        if may_open == False:
            return

        if self.useredits.has_key(uid):
            self.tabwidget.setCurrentWidget(self.useredits[uid])
            return
        import usereditwdg as usered

        useredit = usered.UserEditWdg(uid, self.tabwidget)
        self.useredits[useredit] = uid
        self.useredits[uid] = useredit
        tab_title = useredit.led_firstname.text() + " " + useredit.led_lastname.text()

        usericon = paths.path_to("art/student.svg")
        if os.path.exists(paths.path_to("art/%s.svg") % userdef.usertype_as_text(useredit.user_info["usertype_id"])):
            usericon = paths.path_to("art/%s.svg") % userdef.usertype_as_text(useredit.user_info["usertype_id"])
        self.tabwidget.addTab(useredit, QtGui.QIcon(qt4tools.svg2pixmap(usericon, 32, 32)), tab_title)
        self.tabwidget.setCurrentWidget(useredit)
コード例 #2
0
    def closeUserEdits(self, selfmod=False):
        """
		Close all user edit tabs
		"""
        useredits = list(self.useredits.keys())
        for usered in useredits:
            if type(usered) == str:
                continue
            if selfmod and usered.username == cm.get_binded_user():
                continue
            usered.force_close_without_save = True
            self.removeTabByWidget(usered)
コード例 #3
0
	def setupPermissions(self,access_idents):
		self.permissions = access_idents
		may_modify = False
		if access_idents.count('user.modify') or \
		   (access_idents.count('user.self.modify') and cm.get_binded_user()==self.username):
			may_modify = True

		if may_modify:
			self.force_close_without_save = False
			self.setEnabled(True)
		else:
			self.force_close_without_save = True
			self.setEnabled(False)
		
		if access_idents.count('membership.create'):
			self.trv_groups.setEnabled(True)
		else:
			self.trv_groups.setEnabled(False)
コード例 #4
0
	def userChanged(self,sender,idx):
		self.disconnect(self.trw_access_idents,QtCore.SIGNAL('itemChanged ( QTreeWidgetItem * , int )'),self.accessChanged)
		uidnumber = idx.model().index(idx.row(),0).data(QtCore.Qt.UserRole).toInt()[0]
		uid = self.usermodel.users[uidnumber]['uid']
		self.current_uid = uid
		binded_uid = cm.get_binded_user()
		
		permlist = cm.get_proxy_handle().list_permissions(uid)
		for idx in xrange(self.trw_access_idents.topLevelItemCount()):
			topitem = self.trw_access_idents.topLevelItem(idx)
			access_group = str(topitem.data(0,32).toString())
			for cidx in xrange(topitem.childCount()):
				childitem = topitem.child(cidx)
				if permlist.count(str(childitem.data(0,32).toString())):
					childitem.setCheckState(0,QtCore.Qt.Checked)
				else:
					childitem.setCheckState(0,QtCore.Qt.Unchecked)
				if access_group=='access' and self.current_uid==binded_uid:
					# Prevent user from revoking access.granter and access.soap.bind
					childitem.setFlags(QtCore.Qt.ItemIsUserCheckable)
				else:
					childitem.setFlags(QtCore.Qt.ItemIsUserCheckable|QtCore.Qt.ItemIsEnabled|QtCore.Qt.ItemIsSelectable)
		self.trw_access_idents.setEnabled(True)
		self.connect(self.trw_access_idents,QtCore.SIGNAL('itemChanged ( QTreeWidgetItem * , int )'),self.accessChanged)