def make_membership_request(self, req): project = Project.get(self.env) # Make a request members = MembershipApi(self.env, project) members.request_membership(req.authname, req.args.get('message')) type = 'membership' if req.args.has_key('type'): type = req.args.get('type') return 'membership_requested.html', {'_project_':project, 'type':type}, None
def render_admin_panel(self, req, cat, page, path_info): add_script(req, "multiproject/js/jquery-ui.js") add_script(req, "multiproject/js/permissions.js") add_stylesheet(req, "multiproject/css/jquery-ui.css") add_stylesheet(req, "multiproject/css/permissions.css") is_normal_project = self.env.project_identifier != self.env.config.get("multiproject", "sys_home_project_name") # API instances perm_sys = PermissionSystem(self.env) group_store = CQDEUserGroupStore(env=self.env) org_store = CQDEOrganizationStore.instance() if is_normal_project: membership = MembershipApi(self.env, Project.get(self.env)) else: membership = None if req.method == "POST": action = req.args.get("action") if action == "remove_member": self._remove_member(req, group_store) elif action == "add_member": add_type = req.args.get("add_type") if add_type == "user": self._add_user(req, group_store, membership) elif add_type == "organization": self._add_organization(req, group_store) elif add_type == "ldap_group": self._add_ldap_group(req, group_store) elif add_type == "login_status": login_status = req.args.get("login_status") if login_status not in ("authenticated", "anonymous"): raise TracError("Invalid arguments") self._add_user(req, group_store, membership, username=login_status) else: raise TracError("Invalid add_type") elif action == "add_permission": self._add_perm_to_group(req, group_store, perm_sys) elif action == "remove_permission": self._remove_permission(req, group_store, perm_sys) elif action == "create_group": self._create_group(req, group_store, perm_sys) elif action == "remove_group": self._remove_group(req, group_store) elif action == "add_organization": self._add_organization(req, group_store) elif action == "decline_membership": self._decline_membership(req, membership) else: raise TracError("Unknown action %s" % action) # get membership request list after form posts have been processed if is_normal_project: membership_requests = set(membership.get_membership_requests()) else: membership_requests = set() permissions = set(perm_sys.get_actions()) # check if project if current configuration and permission state is in such state that # permission editions are likely fail invalid_state = None try: group_store.is_valid_group_members() except InvalidPermissionsState, e: add_warning( req, _( "Application permission configuration conflicts with project permissions. " "Before you can fully edit permissions or users you will need to either remove " "offending permissions or set correct application configuration. Page reload" "is required to update this warning." ), ) add_warning(req, e.message)
def render_admin_panel(self, req, cat, page, path_info): add_script(req, 'multiproject/js/jquery-ui.js') add_script(req, 'multiproject/js/permissions.js') add_stylesheet(req, 'multiproject/css/jquery-ui.css') add_stylesheet(req, 'multiproject/css/permissions.css') project = Project.get(self.env) # is_normal_project = self.env.project_identifier != \ self.env.config.get('multiproject', 'sys_home_project_name') # API instances perm_sys = PermissionSystem(self.env) group_store = CQDEUserGroupStore(env=self.env) org_store = CQDEOrganizationStore.instance() if is_normal_project: membership = MembershipApi(self.env, Project.get(self.env)) else: membership = None if req.method == 'POST': action = req.args.get('action') if action == 'remove_member': self._remove_member(req, group_store) elif action == 'add_member': add_type = req.args.get('add_type') if add_type == 'user': self._add_user(req, group_store, membership) elif add_type == 'organization': self._add_organization(req, group_store) elif add_type == 'ldap_group': self._add_ldap_group(req, group_store) elif add_type == 'login_status': login_status = req.args.get('login_status') if login_status not in ('authenticated', 'anonymous'): raise TracError('Invalid arguments') self._add_user(req, group_store, membership, username=login_status) else: raise TracError('Invalid add_type') elif action == 'add_permission': self._add_perm_to_group(req, group_store, perm_sys) elif action == 'remove_permission': self._remove_permission(req, group_store, perm_sys) elif action == 'create_group': self._create_group(req, group_store, perm_sys) elif action == 'remove_group': self._remove_group(req, group_store) elif action == 'add_organization': self._add_organization(req, group_store) elif action == 'decline_membership': self._decline_membership(req, membership) elif 'makepublic' in req.args: project_api = Projects() if conf.allow_public_projects: self._make_public(req, project) project_api.add_public_project_visibility(project.id) # Reload page return req.redirect(req.href(req.path_info)) else: raise TracError("Public projects are disabled", "Error!") elif 'makeprivate' in req.args: project_api = Projects() self._make_private(req, project) project_api.remove_public_project_visibility(project.id) # Reload page return req.redirect(req.href(req.path_info)) else: raise TracError('Unknown action %s' % action) # get membership request list after form posts have been processed if is_normal_project: membership_requests = set(membership.get_membership_requests()) else: membership_requests = set() permissions = set(perm_sys.get_actions()) # check if project if current configuration and permission state is in such state that # permission editions are likely fail invalid_state = None if is_normal_project: is_a_public = project.public else: is_a_public = "" try: group_store.is_valid_group_members() except InvalidPermissionsState, e: add_warning(req, _('Application permission configuration conflicts with project permissions. ' 'Before you can fully edit permissions or users you will need to either remove ' 'offending permissions or set correct application configuration. Page reload' 'is required to update this warning.')) add_warning(req, e.message)
def render_admin_panel(self, req, cat, page, path_info): add_script(req, 'multiproject/js/jquery-ui.js') add_script(req, 'multiproject/js/permissions.js') add_stylesheet(req, 'multiproject/css/jquery-ui.css') add_stylesheet(req, 'multiproject/css/permissions.css') project = Project.get(self.env) # is_normal_project = self.env.project_identifier != \ self.env.config.get('multiproject', 'sys_home_project_name') # API instances perm_sys = PermissionSystem(self.env) group_store = CQDEUserGroupStore(env=self.env) org_store = CQDEOrganizationStore.instance() if is_normal_project: membership = MembershipApi(self.env, Project.get(self.env)) else: membership = None if req.method == 'POST': action = req.args.get('action') if action == 'remove_member': self._remove_member(req, group_store) elif action == 'add_member': add_type = req.args.get('add_type') if add_type == 'user': self._add_user(req, group_store, membership) elif add_type == 'organization': self._add_organization(req, group_store) elif add_type == 'ldap_group': self._add_ldap_group(req, group_store) elif add_type == 'login_status': login_status = req.args.get('login_status') if login_status not in ('authenticated', 'anonymous'): raise TracError('Invalid arguments') self._add_user(req, group_store, membership, username=login_status) else: raise TracError('Invalid add_type') elif action == 'add_permission': self._add_perm_to_group(req, group_store, perm_sys) elif action == 'remove_permission': self._remove_permission(req, group_store, perm_sys) elif action == 'create_group': self._create_group(req, group_store, perm_sys) elif action == 'remove_group': self._remove_group(req, group_store) elif action == 'add_organization': self._add_organization(req, group_store) elif action == 'decline_membership': self._decline_membership(req, membership) elif 'makepublic' in req.args: project_api = Projects() if conf.allow_public_projects: self._make_public(req, project) project_api.add_public_project_visibility(project.id) # Reload page return req.redirect(req.href(req.path_info)) else: raise TracError("Public projects are disabled", "Error!") elif 'makeprivate' in req.args: project_api = Projects() self._make_private(req, project) project_api.remove_public_project_visibility(project.id) # Reload page return req.redirect(req.href(req.path_info)) else: raise TracError('Unknown action %s' % action) # get membership request list after form posts have been processed if is_normal_project: membership_requests = set(membership.get_membership_requests()) else: membership_requests = set() permissions = set(perm_sys.get_actions()) # check if project if current configuration and permission state is in such state that # permission editions are likely fail invalid_state = None if is_normal_project: is_a_public = project.public else: is_a_public = "" try: group_store.is_valid_group_members() except InvalidPermissionsState, e: add_warning( req, _('Application permission configuration conflicts with project permissions. ' 'Before you can fully edit permissions or users you will need to either remove ' 'offending permissions or set correct application configuration. Page reload' 'is required to update this warning.')) add_warning(req, e.message)