@@ -1987,97 +1987,97 @@ class ApiController(JSONRPCController):
@HasPermissionAnyDecorator('hg.admin')
def get_repo_group(self, apiuser, repogroupid):
"""
Returns given repo group together with permissions, and repositories
inside the group
:param apiuser: filled automatically from apikey
:type apiuser: AuthUser
:param repogroupid: id/name of repository group
:type repogroupid: str or int
repo_group = get_repo_group_or_error(repogroupid)
members = []
for user in repo_group.repo_group_to_perm:
perm = user.permission.permission_name
user = user.user
user_data = {
'name': user.username,
'type': "user",
'permission': perm
}
members.append(user_data)
for user_group in repo_group.users_group_to_perm:
perm = user_group.permission.permission_name
user_group = user_group.users_group
user_group_data = {
'name': user_group.users_group_name,
'type': "user_group",
members.append(user_group_data)
data = repo_group.get_api_data()
data["members"] = members
return data
def get_repo_groups(self, apiuser):
Returns all repository groups
result = []
for repo_group in RepoGroupModel().get_all():
for repo_group in RepoGroup.get_all():
result.append(repo_group.get_api_data())
return result
def create_repo_group(self, apiuser, group_name, description=Optional(''),
owner=Optional(OAttr('apiuser')),
parent=Optional(None),
copy_permissions=Optional(False)):
Creates a repository group. This command can be executed only using
api_key belonging to user with admin rights.
:param group_name:
:type group_name:
:param description:
:type description:
:param owner:
:type owner:
:param parent:
:type parent:
:param copy_permissions:
:type copy_permissions:
OUTPUT::
id : <id_given_in_input>
result : {
"msg": "created new repo group `<repo_group_name>`"
"repo_group": <repogroup_object>
error : null
ERROR OUTPUT::
result : null
error : {
failed to create repo group `<repogroupid>`
if RepoGroup.get_by_group_name(group_name):
raise JSONRPCError("repo group `%s` already exist" % (group_name,))
if isinstance(owner, Optional):
owner = apiuser.user_id
Status change: