Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
78863f87
Commit
78863f87
authored
Dec 28, 2016
by
Robert Schilling
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Grapify the LDAP API
parent
cf046802
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
20 additions
and
16 deletions
+20
-16
lib/api/ldap.rb
lib/api/ldap.rb
+20
-16
No files found.
lib/api/ldap.rb
View file @
78863f87
module
API
module
API
# groups API
class
Ldap
<
Grape
::
API
class
Ldap
<
Grape
::
API
before
{
authenticate!
}
before
{
authenticate!
}
resource
:ldap
do
resource
:ldap
do
helpers
do
helpers
do
def
get_group_list
(
provider
,
search
)
def
get_group_list
(
provider
,
search
)
search
||=
""
search
=
Net
::
LDAP
::
Filter
.
escape
(
search
)
search
=
Net
::
LDAP
::
Filter
.
escape
(
search
)
Gitlab
::
LDAP
::
Adapter
.
new
(
provider
).
groups
(
"
#{
search
}
*"
,
20
)
Gitlab
::
LDAP
::
Adapter
.
new
(
provider
).
groups
(
"
#{
search
}
*"
,
20
)
end
end
params
:search_params
do
optional
:search
,
type:
String
,
default:
''
,
desc:
'Search for a specific LDAP group'
end
end
end
# Get a LDAP groups list. Limit size to 20 of them.
desc
'Get a LDAP groups list. Limit size to 20 of them.'
do
# Filter results by name using search param
success
Entities
::
LdapGroup
#
end
# Example Request:
params
do
# GET /ldap/groups
use
:search_params
end
get
'groups'
do
get
'groups'
do
provider
=
Gitlab
::
LDAP
::
Config
.
servers
.
first
[
'provider_name'
]
provider
=
Gitlab
::
LDAP
::
Config
.
servers
.
first
[
'provider_name'
]
@
groups
=
get_group_list
(
provider
,
params
[
:search
])
groups
=
get_group_list
(
provider
,
params
[
:search
])
present
@
groups
,
with:
Entities
::
LdapGroup
present
groups
,
with:
Entities
::
LdapGroup
end
end
# Get a LDAP groups list by the requested provider. Lited size to 20 of them.
desc
'Get a LDAP groups list by the requested provider. Limit size to 20 of them.'
do
# Filter results by name using search param
success
Entities
::
LdapGroup
#
end
# Example Request:
params
do
# GET /ldap/ldapmain/groups
use
:search_params
end
get
':provider/groups'
do
get
':provider/groups'
do
@
groups
=
get_group_list
(
params
[
:provider
],
params
[
:search
])
groups
=
get_group_list
(
params
[
:provider
],
params
[
:search
])
present
@
groups
,
with:
Entities
::
LdapGroup
present
groups
,
with:
Entities
::
LdapGroup
end
end
end
end
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment