Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
1a168279
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1a168279
编写于
4月 04, 2016
作者:
P
Patricio Cano
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Prepare SAML for group retrieval
上级
67136007
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
80 addition
and
2 deletion
+80
-2
lib/gitlab/saml/auth_hash.rb
lib/gitlab/saml/auth_hash.rb
+17
-0
lib/gitlab/saml/config.rb
lib/gitlab/saml/config.rb
+22
-0
lib/gitlab/saml/user.rb
lib/gitlab/saml/user.rb
+41
-2
未找到文件。
lib/gitlab/saml/auth_hash.rb
0 → 100644
浏览文件 @
1a168279
module
Gitlab
module
Saml
class
AuthHash
<
Gitlab
::
OAuth
::
AuthHash
def
groups
get_raw
(
Gitlab
::
Saml
::
Config
.
groups
)
end
private
def
get_raw
(
key
)
auth_hash
.
extra
[
:raw_info
][
key
]
end
end
end
end
lib/gitlab/saml/config.rb
0 → 100644
浏览文件 @
1a168279
# Load a specific server configuration
module
Gitlab
module
Saml
class
Config
class
<<
self
def
options
Gitlab
.
config
.
omniauth
.
providers
.
find
{
|
provider
|
provider
.
name
==
'saml'
}
end
def
groups
options
[
'groups_attribute'
]
end
def
external_groups
options
[
'external_groups'
]
end
end
end
end
end
lib/gitlab/saml/user.rb
浏览文件 @
1a168279
...
...
@@ -7,6 +7,11 @@ module Gitlab
module
Saml
class
User
<
Gitlab
::
OAuth
::
User
def
initialize
(
auth_hash
)
super
update_user_attributes
end
def
save
super
(
'SAML'
)
end
...
...
@@ -18,7 +23,7 @@ module Gitlab
@user
||=
find_or_create_ldap_user
end
if
auto_link_saml_
enabled
?
if
auto_link_saml_
user
?
@user
||=
find_by_email
end
...
...
@@ -37,11 +42,45 @@ module Gitlab
end
end
def
changed?
gl_user
.
changed?
||
gl_user
.
identities
.
any?
(
&
:changed?
)
end
protected
def
auto_link_saml_enabled?
def
build_new_user
user
=
super
if
external_users_enabled?
unless
(
auth_hash
.
groups
&
Gitlab
::
Saml
::
Config
.
external_groups
).
empty?
user
.
external
=
true
end
end
user
end
def
auto_link_saml_user?
Gitlab
.
config
.
omniauth
.
auto_link_saml_user
end
def
external_users_enabled?
!
Gitlab
::
Saml
::
Config
.
external_groups
.
nil?
end
def
auth_hash
=
(
auth_hash
)
@auth_hash
=
Gitlab
::
Saml
::
AuthHash
.
new
(
auth_hash
)
end
def
update_user_attributes
if
persisted?
if
external_users_enabled?
if
(
auth_hash
.
groups
&
Gitlab
::
Saml
::
Config
.
external_groups
).
empty?
gl_user
.
external
=
false
else
gl_user
.
external
=
true
end
end
end
end
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录