X Tutup
Skip to content

Commit acbd5bd

Browse files
author
Leo Antunes
committed
groups: add initial support for LDAP links
1 parent f12446e commit acbd5bd

File tree

3 files changed

+49
-1
lines changed

3 files changed

+49
-1
lines changed

docs/gl_objects/groups.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,24 @@
6464
# or
6565
member.delete()
6666
# end member delete
67+
68+
# ldap sync list
69+
group.ldap_group_links
70+
# end ldap sync list
71+
72+
# ldap sync create
73+
gl.group_ldap_links.create({'cn': 'some_ldap_group_name',
74+
'provider': 'ldapmain', 'group_access': 50},
75+
group_id=1)
76+
# or
77+
group.ldaplinks.create({'cn': 'some_ldap_group_name',
78+
'provider': 'ldapmain', 'group_access': 50})
79+
# end ldap sync create
80+
81+
# ldap sync delete
82+
gl.group_ldap_links.delete('some_ldap_group_name', group_id=1)
83+
# or
84+
group.ldaplinks.delete('some_ldap_group_name')
85+
# or
86+
ldaplink.delete()
87+
# end ldap sync delete

docs/gl_objects/groups.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,15 @@ Remove a member from the group:
109109
.. literalinclude:: groups.py
110110
:start-after: # member delete
111111
:end-before: # end member delete
112+
113+
Add an LDAP group for synchronization:
114+
115+
.. literalinclude:: groups.py
116+
:start-after: # ldap sync create
117+
:end-before: # end ldap sync create
118+
119+
Remove an LDAP group for synchronization:
120+
121+
.. literalinclude:: groups.py
122+
:start-after: # ldap sync delete
123+
:end-before: # end ldap sync delete

gitlab/objects.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,20 @@ class GroupIssueManager(BaseManager):
737737
obj_cls = GroupIssue
738738

739739

740+
class GroupLdapSyncLink(GitlabObject):
741+
_url = '/groups/%(group_id)s/ldap_group_links'
742+
idAttr = 'cn'
743+
canGet = False
744+
canList = False
745+
canUpdate = False
746+
requiredUrlAttrs = ['group_id']
747+
requiredCreateAttrs = ['group_id', 'cn', 'group_access', 'provider']
748+
749+
750+
class GroupLdapSyncLinkManager(BaseManager):
751+
obj_cls = GroupLdapSyncLink
752+
753+
740754
class GroupMember(GitlabObject):
741755
_url = '/groups/%(group_id)s/members'
742756
canGet = 'from_list'
@@ -807,7 +821,8 @@ class Group(GitlabObject):
807821
('accessrequests', GroupAccessRequestManager, [('group_id', 'id')]),
808822
('members', GroupMemberManager, [('group_id', 'id')]),
809823
('projects', GroupProjectManager, [('group_id', 'id')]),
810-
('issues', GroupIssueManager, [('group_id', 'id')])
824+
('issues', GroupIssueManager, [('group_id', 'id')]),
825+
('ldaplinks', GroupLdapSyncLinkManager, [('group_id', 'id')]),
811826
]
812827

813828
GUEST_ACCESS = gitlab.GUEST_ACCESS

0 commit comments

Comments
 (0)
X Tutup