Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nexpie-grafana-theme
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Kornkitt Poolsup
nexpie-grafana-theme
Commits
6cdfff52
Commit
6cdfff52
authored
Sep 14, 2018
by
Torkel Ödegaard
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of github.com:grafana/grafana
parents
462b5d93
f2833bfd
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
25 additions
and
45 deletions
+25
-45
conf/ldap.toml
+3
-29
docs/sources/auth/ldap.md
+0
-0
pkg/login/ldap.go
+10
-6
public/app/features/templating/template_srv.ts
+12
-10
No files found.
conf/ldap.toml
View file @
6cdfff52
...
...
@@ -31,37 +31,11 @@ search_filter = "(cn=%s)"
# An array of base dns to search through
search_base_dns
=
["dc=grafana,dc=org"]
# In POSIX LDAP schemas, without memberOf attribute a secondary query must be made for groups.
# This is done by enabling group_search_filter below. You must also set member_of= "cn"
# in [servers.attributes] below.
# Users with nested/recursive group membership and an LDAP server that supports LDAP_MATCHING_RULE_IN_CHAIN
# can set group_search_filter, group_search_filter_user_attribute, group_search_base_dns and member_of
# below in such a way that the user's recursive group membership is considered.
#
# Nested Groups + Active Directory (AD) Example:
#
# AD groups store the Distinguished Names (DNs) of members, so your filter must
# recursively search your groups for the authenticating user's DN. For example:
#
# group_search_filter = "(member:1.2.840.113556.1.4.1941:=%s)"
# group_search_filter_user_attribute = "distinguishedName"
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
#
# [servers.attributes]
# ...
# member_of = "distinguishedName"
## Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available)
## For Posix or LDAP setups that does not support member_of attribute you can define the below settings
## Please check grafana LDAP docs for examples
# group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
## Group search filter user attribute defines what user attribute gets substituted for %s in group_search_filter.
## Defaults to the value of username in [server.attributes]
## Valid options are any of your values in [servers.attributes]
## If you are using nested groups you probably want to set this and member_of in
## [servers.attributes] to "distinguishedName"
# group_search_filter_user_attribute = "distinguishedName"
## An array of the base DNs to search through for groups. Typically uses ou=groups
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
# group_search_filter_user_attribute = "uid"
# Specify names of the ldap attributes your ldap uses
[servers.attributes]
...
...
docs/sources/auth/ldap.md
View file @
6cdfff52
This diff is collapsed.
Click to expand it.
pkg/login/ldap.go
View file @
6cdfff52
...
...
@@ -326,15 +326,19 @@ func (a *ldapAuther) searchForUser(username string) (*LdapUserInfo, error) {
a
.
log
.
Info
(
"Searching for user's groups"
,
"filter"
,
filter
)
// support old way of reading settings
groupIdAttribute
:=
a
.
server
.
Attr
.
MemberOf
// but prefer dn attribute if default settings are used
if
groupIdAttribute
==
""
||
groupIdAttribute
==
"memberOf"
{
groupIdAttribute
=
"dn"
}
groupSearchReq
:=
ldap
.
SearchRequest
{
BaseDN
:
groupSearchBase
,
Scope
:
ldap
.
ScopeWholeSubtree
,
DerefAliases
:
ldap
.
NeverDerefAliases
,
Attributes
:
[]
string
{
// Here MemberOf would be the thing that identifies the group, which is normally 'cn'
a
.
server
.
Attr
.
MemberOf
,
},
Filter
:
filter
,
Attributes
:
[]
string
{
groupIdAttribute
},
Filter
:
filter
,
}
groupSearchResult
,
err
=
a
.
conn
.
Search
(
&
groupSearchReq
)
...
...
@@ -344,7 +348,7 @@ func (a *ldapAuther) searchForUser(username string) (*LdapUserInfo, error) {
if
len
(
groupSearchResult
.
Entries
)
>
0
{
for
i
:=
range
groupSearchResult
.
Entries
{
memberOf
=
append
(
memberOf
,
getLdapAttrN
(
a
.
server
.
Attr
.
MemberOf
,
groupSearchResult
,
i
))
memberOf
=
append
(
memberOf
,
getLdapAttrN
(
groupIdAttribute
,
groupSearchResult
,
i
))
}
break
}
...
...
public/app/features/templating/template_srv.ts
View file @
6cdfff52
...
...
@@ -50,18 +50,20 @@ export class TemplateSrv {
getAdhocFilters
(
datasourceName
)
{
let
filters
=
[];
for
(
let
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
const
variable
=
this
.
variables
[
i
];
if
(
variable
.
type
!==
'adhoc'
)
{
continue
;
}
if
(
this
.
variables
)
{
for
(
let
i
=
0
;
i
<
this
.
variables
.
length
;
i
++
)
{
const
variable
=
this
.
variables
[
i
];
if
(
variable
.
type
!==
'adhoc'
)
{
continue
;
}
// null is the "default" datasource
if
(
variable
.
datasource
===
null
||
variable
.
datasource
===
datasourceName
)
{
filters
=
filters
.
concat
(
variable
.
filters
);
}
else
if
(
variable
.
datasource
.
indexOf
(
'$'
)
===
0
)
{
if
(
this
.
replace
(
variable
.
datasource
)
===
datasourceName
)
{
// null is the "default" datasource
if
(
variable
.
datasource
===
null
||
variable
.
datasource
===
datasourceName
)
{
filters
=
filters
.
concat
(
variable
.
filters
);
}
else
if
(
variable
.
datasource
.
indexOf
(
'$'
)
===
0
)
{
if
(
this
.
replace
(
variable
.
datasource
)
===
datasourceName
)
{
filters
=
filters
.
concat
(
variable
.
filters
);
}
}
}
}
...
...
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