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)