def setupPermissions(self, access_idents): action_map_perm = { "import_users": "user.create", "export_users": "user.view", "export_groups": "group.view", "open_filemanager": "file.browse", "exec_creategroupwizard": "group.create", "exec_createuserwizard": "user.create", "exec_accessmanager": "access.granter", } for action_key, acc_ident in action_map_perm.items(): if not access_idents.count(acc_ident): self.action(action_key).setDisabled(True) else: self.action(action_key).setDisabled(False) if accesstools.check_permission_multi_or(("user.modify", "user.view"), False) == False: # No access to users allowed self.closeUserEdits(accesstools.check_permission("user.self.modify", False)) if accesstools.check_permission_multi_or(("group.modify", "group.view"), False) == False: # No access to users allowed self.closeGroupEdits() if accesstools.check_permission("file.browse", False) == False: # No access to users allowed self.removeTabByWidget(self.filemanager)
def __init__(self,groups_by_mime,parent): QtGui.QDialog.__init__(self,parent) self.setupUi(self) self.groups = groups_by_mime self.setupModels() self.btn_ok.setEnabled(False) self.connect(self.btn_ok,QtCore.SIGNAL('clicked()'),self.accept) self.connect(self.btn_cancel,QtCore.SIGNAL('clicked()'),self.reject) # Setup Permissions if not accesstools.check_permission('membership.create',False): self.trv_add.setEnabled(False) if not accesstools.check_permission('membership.remove',False): self.trv_remove.setEnabled(False)
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 execCreateGroupWizard(self): # Check if the user has propper permissions and present a nice message if not # This is ofcourse also checked on the server side. if not accesstools.check_permission("group.create"): return import creategroupwizard as cgw wiz = cgw.CreateGroupWizard(self) wiz.exec_()
def execAccessManager(self): # Check if the user has propper permissions and present a nice message if not # This is ofcourse also checked on the server side. if not accesstools.check_permission("access.granter"): return import accessmanagerwdg as amwdg if not self.accessmanager: self.accessmanager = amwdg.AccessManagerWdg(self) self.accessmanager.exec_()
def accept(self): progress = QtGui.QProgressDialog(self.tr("Applying membership changes..."),self.tr("Cancel"),0,100) progress.setWindowModality(QtCore.Qt.WindowModal) progress.show() groups = self.groupmodel.groupNames() add_users = self.add_usermodel.userNames() del_users = self.remove_usermodel.userNames() touched_groups = {} touched_users = {} proxy = cm.get_proxy_handle() steps = len(del_users)*len(groups) + len(add_users)*len(groups) step_factor = 100.0/steps step = 0 if accesstools.check_permission('membership.create',False): for uid in add_users: for grp in groups: proxy.groupadd(uid,grp) touched_users[uid] = 1 touched_groups[grp] = 1 progress.setValue(int(step*step_factor)) step+=1 if accesstools.check_permission('membership.remove',False): for uid in del_users: for grp in groups: proxy.groupdel(uid,grp) touched_users[uid] = 1 touched_groups[grp] = 1 progress.setValue(int(step*step_factor)) step+=1 for uid in touched_users.keys(): mainwin.get_mainwindow().emitUserMembershipsChanged(uid) for grp in touched_groups.keys(): mainwin.get_mainwindow().emitGroupMembershipsChanged(grp) progress.setValue(100) QtGui.QDialog.accept(self)
def openFileManager(self): # Check if the user has propper permissions and present a nice message if not # This is ofcourse also checked on the server side. if not accesstools.check_permission("file.browse"): return if self.filemanager != None: self.tabwidget.setCurrentWidget(self.filemanager) return import filemanagerwdg as fileman self.filemanager = fileman.FileManagerWdg(self.tabwidget) tab_title = self.tr("File manager") self.tabwidget.addTab( self.filemanager, QtGui.QIcon(qt4tools.svg2pixmap(paths.path_to("art/stats.svg"), 16, 16)), tab_title ) self.tabwidget.setCurrentWidget(self.filemanager)