X Tutup
Skip to content

Commit 3cb4766

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

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-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: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -736,6 +736,17 @@ class GroupIssue(GitlabObject):
736736
class GroupIssueManager(BaseManager):
737737
obj_cls = GroupIssue
738738

739+
class GroupLdapSyncLink(GitlabObject):
740+
_url = '/groups/%(group_id)s/ldap_group_links'
741+
idAttr = 'cn'
742+
canGet = False
743+
canList = False
744+
canUpdate = False
745+
requiredUrlAttrs = ['group_id']
746+
requiredCreateAttrs = ['group_id', 'cn', 'group_access', 'provider']
747+
748+
class GroupLdapSyncLinkManager(BaseManager):
749+
obj_cls = GroupLdapSyncLink
739750

740751
class GroupMember(GitlabObject):
741752
_url = '/groups/%(group_id)s/members'
@@ -807,7 +818,8 @@ class Group(GitlabObject):
807818
('accessrequests', GroupAccessRequestManager, [('group_id', 'id')]),
808819
('members', GroupMemberManager, [('group_id', 'id')]),
809820
('projects', GroupProjectManager, [('group_id', 'id')]),
810-
('issues', GroupIssueManager, [('group_id', 'id')])
821+
('issues', GroupIssueManager, [('group_id', 'id')]),
822+
('ldaplinks', GroupLdapSyncLinkManager, [('group_id', 'id')]),
811823
]
812824

813825
GUEST_ACCESS = gitlab.GUEST_ACCESS

0 commit comments

Comments
 (0)
X Tutup