BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
817b9d1b
Commit
817b9d1b
authored
Aug 20, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'refactor/access_roles' of /home/git/repositories/gitlab/gitlabhq
parents
d04ad4cb
7a26a4b6
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
66 additions
and
53 deletions
+66
-53
project.rb
app/models/project.rb
+0
-9
users_group.rb
app/models/users_group.rb
+4
-15
users_project.rb
app/models/users_project.rb
+6
-22
system_hooks_service.rb
app/services/system_hooks_service.rb
+1
-1
show.html.haml
app/views/admin/projects/show.html.haml
+3
-2
project_access_granted_email.html.haml
app/views/notify/project_access_granted_email.html.haml
+1
-1
project_access_granted_email.text.erb
app/views/notify/project_access_granted_email.text.erb
+1
-1
_form.html.haml
app/views/projects/team_members/_form.html.haml
+1
-1
access.rb
lib/gitlab/access.rb
+48
-0
notify_spec.rb
spec/mailers/notify_spec.rb
+1
-1
No files found.
app/models/project.rb
View file @
817b9d1b
...
...
@@ -133,10 +133,6 @@ class Project < ActiveRecord::Base
where
(
path:
id
,
namespace_id:
nil
).
last
end
end
def
access_options
UsersProject
.
access_roles
end
end
def
team
...
...
@@ -399,11 +395,6 @@ class Project < ActiveRecord::Base
http_url
=
[
Gitlab
.
config
.
gitlab
.
url
,
"/"
,
path_with_namespace
,
".git"
].
join
(
''
)
end
def
project_access_human
(
member
)
project_user_relation
=
self
.
users_projects
.
find_by_user_id
(
member
.
id
)
self
.
class
.
access_options
.
key
(
project_user_relation
.
project_access
)
end
# Check if current branch name is marked as protected in the system
def
protected_branch?
branch_name
protected_branches_names
.
include?
(
branch_name
)
...
...
app/models/users_group.rb
View file @
817b9d1b
...
...
@@ -12,21 +12,10 @@
class
UsersGroup
<
ActiveRecord
::
Base
include
Notifiable
GUEST
=
10
REPORTER
=
20
DEVELOPER
=
30
MASTER
=
40
OWNER
=
50
include
Gitlab
::
Access
def
self
.
group_access_roles
{
"Guest"
=>
GUEST
,
"Reporter"
=>
REPORTER
,
"Developer"
=>
DEVELOPER
,
"Master"
=>
MASTER
,
"Owner"
=>
OWNER
}
Gitlab
::
Access
.
options_with_owner
end
attr_accessible
:group_access
,
:user_id
...
...
@@ -50,7 +39,7 @@ class UsersGroup < ActiveRecord::Base
delegate
:name
,
:username
,
:email
,
to: :user
,
prefix:
true
def
human_access
UsersGroup
.
group_access_roles
.
key
(
self
.
group_access
)
def
access_field
group_access
end
end
app/models/users_project.rb
View file @
817b9d1b
...
...
@@ -14,11 +14,7 @@
class
UsersProject
<
ActiveRecord
::
Base
include
Gitlab
::
ShellAdapter
include
Notifiable
GUEST
=
10
REPORTER
=
20
DEVELOPER
=
30
MASTER
=
40
include
Gitlab
::
Access
attr_accessible
:user
,
:user_id
,
:project_access
...
...
@@ -27,7 +23,7 @@ class UsersProject < ActiveRecord::Base
validates
:user
,
presence:
true
validates
:user_id
,
uniqueness:
{
scope:
[
:project_id
],
message:
"already exists in project"
}
validates
:project_access
,
inclusion:
{
in:
[
GUEST
,
REPORTER
,
DEVELOPER
,
MASTER
]
},
presence:
true
validates
:project_access
,
inclusion:
{
in:
Gitlab
::
Access
.
values
},
presence:
true
validates
:project
,
presence:
true
delegate
:name
,
:username
,
:email
,
to: :user
,
prefix:
true
...
...
@@ -103,27 +99,15 @@ class UsersProject < ActiveRecord::Base
end
def
roles_hash
{
guest:
GUEST
,
reporter:
REPORTER
,
developer:
DEVELOPER
,
master:
MASTER
}
Gitlab
::
Access
.
sym_options
end
def
access_roles
{
"Guest"
=>
GUEST
,
"Reporter"
=>
REPORTER
,
"Developer"
=>
DEVELOPER
,
"Master"
=>
MASTER
}
Gitlab
::
Access
.
options
end
end
def
project_access_human
Project
.
access_options
.
key
(
self
.
project_access
)
def
access_field
project_access
end
alias_method
:human_access
,
:project_access_human
end
app/services/system_hooks_service.rb
View file @
817b9d1b
...
...
@@ -43,7 +43,7 @@ class SystemHooksService
project_id:
model
.
project_id
,
user_name:
model
.
user
.
name
,
user_email:
model
.
user
.
email
,
project_access:
model
.
project_access_human
project_access:
model
.
human_access
})
end
end
...
...
app/views/admin/projects/show.html.haml
View file @
817b9d1b
...
...
@@ -96,11 +96,12 @@
%i
.icon-edit
Manage Access
%ul
.well-list.team_members
-
@project
.
users
.
each
do
|
user
|
-
@project
.
users_projects
.
each
do
|
users_project
|
-
user
=
users_project
.
user
%li
%strong
=
link_to
user
.
name
,
admin_user_path
(
user
)
.pull-right
%span
.light
=
@project
.
project_access_human
(
user
)
%span
.light
=
users_project
.
human_access
=
link_to
admin_project_member_path
(
@project
,
user
),
confirm:
remove_from_project_team_message
(
@project
,
user
),
method: :delete
,
class:
"btn btn-small btn-remove"
do
%i
.icon-remove
app/views/notify/project_access_granted_email.html.haml
View file @
817b9d1b
%p
=
"You have been granted
#{
@users_project
.
project_access_human
}
access to project"
=
"You have been granted
#{
@users_project
.
human_access
}
access to project"
%p
=
link_to
project_url
(
@project
)
do
=
@project
.
name_with_namespace
app/views/notify/project_access_granted_email.text.erb
View file @
817b9d1b
You have been granted
<%=
@users_project
.
project_access_human
%>
access to project
<%=
@project
.
name_with_namespace
%>
You have been granted
<%=
@users_project
.
human_access
%>
access to project
<%=
@project
.
name_with_namespace
%>
<%=
url_for
(
project_url
(
@project
))
%>
app/views/projects/team_members/_form.html.haml
View file @
817b9d1b
...
...
@@ -17,7 +17,7 @@
%h6
2. Set access level for them
.control-group
=
f
.
label
:project_access
,
"Project Access"
.controls
=
select_tag
:project_access
,
options_for_select
(
Project
.
access_
options
,
@user_project_relation
.
project_access
),
class:
"project-access-select chosen"
.controls
=
select_tag
:project_access
,
options_for_select
(
Gitlab
::
Access
.
options
,
@user_project_relation
.
project_access
),
class:
"project-access-select chosen"
.form-actions
=
f
.
submit
'Add users'
,
class:
"btn btn-create"
...
...
lib/gitlab/access.rb
0 → 100644
View file @
817b9d1b
# Gitlab::Access module
#
# Define allowed roles that can be used
# in GitLab code to determine authorization level
#
module
Gitlab
module
Access
GUEST
=
10
REPORTER
=
20
DEVELOPER
=
30
MASTER
=
40
OWNER
=
50
class
<<
self
def
values
options
.
values
end
def
options
{
"Guest"
=>
GUEST
,
"Reporter"
=>
REPORTER
,
"Developer"
=>
DEVELOPER
,
"Master"
=>
MASTER
,
}
end
def
options_with_owner
options
.
merge
(
"Owner"
=>
OWNER
)
end
def
sym_options
{
guest:
GUEST
,
reporter:
REPORTER
,
developer:
DEVELOPER
,
master:
MASTER
,
}
end
end
def
human_access
Gitlab
::
Access
.
options_with_owner
.
key
(
access_field
)
end
end
end
spec/mailers/notify_spec.rb
View file @
817b9d1b
...
...
@@ -250,7 +250,7 @@ describe Notify do
should
have_body_text
/
#{
project
.
name
}
/
end
it
'contains new user role'
do
should
have_body_text
/
#{
users_project
.
project_access_human
}
/
should
have_body_text
/
#{
users_project
.
human_access
}
/
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