def grant_users_group_permission(self, repos_group, group_name, perm): """ Grant permission for users group on given repositories group, or update existing one if found :param repos_group: Instance of ReposGroup, repositories_group_id, or repositories_group name :param group_name: Instance of UserGroup, users_group_id, or users group name :param perm: Instance of Permission, or permission_name """ repos_group = self.__get_repos_group(repos_group) group_name = self.__get_users_group(group_name) permission = self.__get_perm(perm) # check if we have that permission already obj = self.sa.query(UsersGroupRepoGroupToPerm)\ .filter(UsersGroupRepoGroupToPerm.group == repos_group)\ .filter(UsersGroupRepoGroupToPerm.users_group == group_name)\ .scalar() if obj is None: # create new obj = UsersGroupRepoGroupToPerm() obj.group = repos_group obj.users_group = group_name obj.permission = permission self.sa.add(obj)
def grant_users_group_permission(self, repos_group, group_name, perm): """ Grant permission for users group on given repositories group, or update existing one if found :param repos_group: Instance of ReposGroup, repositories_group_id, or repositories_group name :param group_name: Instance of UserGroup, users_group_id, or users group name :param perm: Instance of Permission, or permission_name """ repos_group = self.__get_repos_group(repos_group) group_name = self.__get_users_group(group_name) permission = self.__get_perm(perm) # check if we have that permission already obj = self.sa.query(UsersGroupRepoGroupToPerm)\ .filter(UsersGroupRepoGroupToPerm.group == repos_group)\ .filter(UsersGroupRepoGroupToPerm.users_group == group_name)\ .scalar() if obj is None: # create new obj = UsersGroupRepoGroupToPerm() obj.group = repos_group obj.users_group = group_name obj.permission = permission self.sa.add(obj)
def _load_data(self, id): c.users_group.permissions = { 'repositories': {}, 'repositories_groups': {} } ugroup_repo_perms = UsersGroupRepoToPerm.query()\ .options(joinedload(UsersGroupRepoToPerm.permission))\ .options(joinedload(UsersGroupRepoToPerm.repository))\ .filter(UsersGroupRepoToPerm.users_group_id == id)\ .all() for gr in ugroup_repo_perms: c.users_group.permissions['repositories'][gr.repository.repo_name] \ = gr.permission.permission_name ugroup_group_perms = UsersGroupRepoGroupToPerm.query()\ .options(joinedload(UsersGroupRepoGroupToPerm.permission))\ .options(joinedload(UsersGroupRepoGroupToPerm.group))\ .filter(UsersGroupRepoGroupToPerm.users_group_id == id)\ .all() for gr in ugroup_group_perms: c.users_group.permissions['repositories_groups'][gr.group.group_name] \ = gr.permission.permission_name c.group_members_obj = [x.user for x in c.users_group.members] c.group_members = [(x.user_id, x.username) for x in c.group_members_obj] c.available_members = [(x.user_id, x.username) for x in User.query().all()]