Skip to content
Snippets Groups Projects
Verified Commit 6fbd69a6 authored by Julian's avatar Julian
Browse files

Bookworm fixes for gitlab-ldap-sync

parent 6437b6d4
Branches
No related tags found
No related merge requests found
...@@ -106,7 +106,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run= ...@@ -106,7 +106,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run=
existing_member_dns = [] existing_member_dns = []
logging.debug('Checking current Gitlab group members') logging.debug('Checking current Gitlab group members')
members = group.members.list(all=True) members = group.members.list(all=True)
owner_count = len([member for member in members if member.access_level == gitlab.OWNER_ACCESS]) owner_count = len([member for member in members if member.access_level == gitlab.const.OWNER_ACCESS])
logging.debug('Group has %d owners', owner_count) logging.debug('Group has %d owners', owner_count)
for member in members: for member in members:
user = gl.users.get(member.id) user = gl.users.get(member.id)
...@@ -120,9 +120,9 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run= ...@@ -120,9 +120,9 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run=
logging.info('Removing user %s from group %s', dn, group.full_path) logging.info('Removing user %s from group %s', dn, group.full_path)
if not dry_run: if not dry_run:
member.delete() member.delete()
elif member.access_level != gitlab.MASTER_ACCESS: elif member.access_level != gitlab.const.MAINTAINER_ACCESS:
# We cannot change the access level of the last owner of a top-level group # We cannot change the access level of the last owner of a top-level group
if member.access_level == gitlab.OWNER_ACCESS: if member.access_level == gitlab.const.OWNER_ACCESS:
if owner_count == 1 and not group.parent_id: if owner_count == 1 and not group.parent_id:
logging.info('Not updating access level of %s in group %s, because it is the last owner', dn, group.full_path) logging.info('Not updating access level of %s in group %s, because it is the last owner', dn, group.full_path)
continue continue
...@@ -130,7 +130,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run= ...@@ -130,7 +130,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run=
logging.info('Updating access level of %s in group %s', dn, group.full_path) logging.info('Updating access level of %s in group %s', dn, group.full_path)
try: try:
if not dry_run: if not dry_run:
member.access_level = gitlab.MASTER_ACCESS member.access_level = gitlab.const.MAINTAINER_ACCESS
member.save() member.save()
except gitlab.exceptions.GitlabUpdateError as e: except gitlab.exceptions.GitlabUpdateError as e:
logging.exception('Access level update of %s in group %s failed', dn, group.full_path) logging.exception('Access level update of %s in group %s failed', dn, group.full_path)
...@@ -144,7 +144,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run= ...@@ -144,7 +144,7 @@ def sync_group_members(gl, group, member_dns, ldap_provider='ldapmain', dry_run=
continue continue
try: try:
if not dry_run: if not dry_run:
group.members.create({'user_id': user.id, 'access_level': gitlab.MASTER_ACCESS}) group.members.create({'user_id': user.id, 'access_level': gitlab.const.MAINTAINER_ACCESS})
except gitlab.exceptions.GitlabCreateError as e: except gitlab.exceptions.GitlabCreateError as e:
if e.response_code == 500: if e.response_code == 500:
logging.info('Adding user %s to group %s failed with Internal Server Error', dn, group.full_path) logging.info('Adding user %s to group %s failed with Internal Server Error', dn, group.full_path)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment