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)
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)
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)
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)