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
0
Merge Requests
0
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
Kazuhiko Shiozaki
gitlab-ce
Commits
df7c5248
Commit
df7c5248
authored
Oct 09, 2012
by
Andrey Kumanyaev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simple refactoring
parent
a635b9da
Changes
20
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
254 additions
and
242 deletions
+254
-242
app/helpers/commits_helper.rb
app/helpers/commits_helper.rb
+1
-1
app/helpers/merge_requests_helper.rb
app/helpers/merge_requests_helper.rb
+1
-1
app/models/ability.rb
app/models/ability.rb
+50
-51
app/models/event.rb
app/models/event.rb
+11
-8
app/models/group.rb
app/models/group.rb
+14
-14
app/models/key.rb
app/models/key.rb
+5
-6
app/models/merge_request.rb
app/models/merge_request.rb
+4
-3
app/models/milestone.rb
app/models/milestone.rb
+2
-1
app/models/note.rb
app/models/note.rb
+9
-7
app/models/project.rb
app/models/project.rb
+47
-45
app/models/protected_branch.rb
app/models/protected_branch.rb
+2
-1
app/models/snippet.rb
app/models/snippet.rb
+3
-1
app/models/system_hook.rb
app/models/system_hook.rb
+4
-4
app/models/user.rb
app/models/user.rb
+36
-33
app/models/users_project.rb
app/models/users_project.rb
+43
-41
app/models/web_hook.rb
app/models/web_hook.rb
+1
-1
app/models/wiki.rb
app/models/wiki.rb
+13
-13
app/roles/account.rb
app/roles/account.rb
+1
-1
app/roles/authority.rb
app/roles/authority.rb
+4
-4
app/roles/issue_commonality.rb
app/roles/issue_commonality.rb
+3
-6
No files found.
app/helpers/commits_helper.rb
View file @
df7c5248
app/helpers/merge_requests_helper.rb
View file @
df7c5248
app/models/ability.rb
View file @
df7c5248
class
Ability
class
Ability
def
self
.
allowed
(
object
,
subject
)
class
<<
self
def
allowed
(
object
,
subject
)
case
subject
.
class
.
name
case
subject
.
class
.
name
when
"Project"
then
project_abilities
(
object
,
subject
)
when
"Project"
then
project_abilities
(
object
,
subject
)
when
"Issue"
then
issue_abilities
(
object
,
subject
)
when
"Issue"
then
issue_abilities
(
object
,
subject
)
...
@@ -10,7 +11,7 @@ class Ability
...
@@ -10,7 +11,7 @@ class Ability
end
end
end
end
def
self
.
project_abilities
(
user
,
project
)
def
project_abilities
(
user
,
project
)
rules
=
[]
rules
=
[]
rules
<<
[
rules
<<
[
...
@@ -55,7 +56,6 @@ class Ability
...
@@ -55,7 +56,6 @@ class Ability
rules
.
flatten
rules
.
flatten
end
end
class
<<
self
[
:issue
,
:note
,
:snippet
,
:merge_request
].
each
do
|
name
|
[
:issue
,
:note
,
:snippet
,
:merge_request
].
each
do
|
name
|
define_method
"
#{
name
}
_abilities"
do
|
user
,
subject
|
define_method
"
#{
name
}
_abilities"
do
|
user
,
subject
|
if
subject
.
author
==
user
if
subject
.
author
==
user
...
@@ -72,8 +72,7 @@ class Ability
...
@@ -72,8 +72,7 @@ class Ability
:"modify_
#{
name
}
"
,
:"modify_
#{
name
}
"
,
]
]
else
else
subject
.
respond_to?
(
:project
)
?
subject
.
respond_to?
(
:project
)
?
project_abilities
(
user
,
subject
.
project
)
:
[]
project_abilities
(
user
,
subject
.
project
)
:
[]
end
end
end
end
end
end
...
...
app/models/event.rb
View file @
df7c5248
...
@@ -27,10 +27,12 @@ class Event < ActiveRecord::Base
...
@@ -27,10 +27,12 @@ class Event < ActiveRecord::Base
# For Hash only
# For Hash only
serialize
:data
serialize
:data
# Scopes
scope
:recent
,
order
(
"created_at DESC"
)
scope
:recent
,
order
(
"created_at DESC"
)
scope
:code_push
,
where
(
action:
Pushed
)
scope
:code_push
,
where
(
action:
Pushed
)
def
self
.
determine_action
(
record
)
class
<<
self
def
determine_action
(
record
)
if
[
Issue
,
MergeRequest
].
include?
record
.
class
if
[
Issue
,
MergeRequest
].
include?
record
.
class
Event
::
Created
Event
::
Created
elsif
record
.
kind_of?
Note
elsif
record
.
kind_of?
Note
...
@@ -38,9 +40,10 @@ class Event < ActiveRecord::Base
...
@@ -38,9 +40,10 @@ class Event < ActiveRecord::Base
end
end
end
end
def
self
.
recent_for_user
user
def
recent_for_user
user
where
(
project_id:
user
.
projects
.
map
(
&
:id
)).
recent
where
(
project_id:
user
.
projects
.
map
(
&
:id
)).
recent
end
end
end
# Next events currently enabled for system
# Next events currently enabled for system
# - push
# - push
...
...
app/models/group.rb
View file @
df7c5248
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
class
Group
<
ActiveRecord
::
Base
class
Group
<
ActiveRecord
::
Base
attr_accessible
:code
,
:name
,
:owner_id
attr_accessible
:code
,
:name
,
:owner_id
...
@@ -18,7 +6,7 @@ class Group < ActiveRecord::Base
...
@@ -18,7 +6,7 @@ class Group < ActiveRecord::Base
validates
:name
,
presence:
true
,
uniqueness:
true
validates
:name
,
presence:
true
,
uniqueness:
true
validates
:code
,
presence:
true
,
uniqueness:
true
validates
:code
,
presence:
true
,
uniqueness:
true
validates
:owner
_id
,
presence:
true
validates
:owner
,
presence:
true
delegate
:name
,
to: :owner
,
allow_nil:
true
,
prefix:
true
delegate
:name
,
to: :owner
,
allow_nil:
true
,
prefix:
true
...
@@ -31,6 +19,18 @@ class Group < ActiveRecord::Base
...
@@ -31,6 +19,18 @@ class Group < ActiveRecord::Base
end
end
def
users
def
users
User
.
joins
(
:users_projects
).
where
(
'users_projects.project_id'
=>
project_ids
).
uniq
User
.
joins
(
:users_projects
).
where
(
users_projects:
{
project_id:
project_ids
}
).
uniq
end
end
end
end
# == Schema Information
#
# Table name: groups
#
# id :integer not null, primary key
# name :string(255) not null
# code :string(255) not null
# owner_id :integer not null
# created_at :datetime not null
# updated_at :datetime not null
#
app/models/key.rb
View file @
df7c5248
...
@@ -6,15 +6,14 @@ class Key < ActiveRecord::Base
...
@@ -6,15 +6,14 @@ class Key < ActiveRecord::Base
attr_accessible
:key
,
:title
attr_accessible
:key
,
:title
before_validation
:strip_white_space
before_save
:set_identifier
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:key
,
presence:
true
,
validates
:key
,
presence:
true
,
length:
{
within:
0
..
5000
},
format:
{
:with
=>
/ssh-.{3} /
}
length:
{
within:
0
..
5000
},
validate
:unique_key
,
:fingerprintable_key
format:
{
:with
=>
/ssh-.{3} /
}
before_save
:set_identifier
before_validation
:strip_white_space
delegate
:name
,
:email
,
to: :user
,
prefix:
true
delegate
:name
,
:email
,
to: :user
,
prefix:
true
validate
:unique_key
,
:fingerprintable_key
def
strip_white_space
def
strip_white_space
self
.
key
=
self
.
key
.
strip
unless
self
.
key
.
blank?
self
.
key
=
self
.
key
.
strip
unless
self
.
key
.
blank?
...
...
app/models/merge_request.rb
View file @
df7c5248
...
@@ -7,6 +7,8 @@ class MergeRequest < ActiveRecord::Base
...
@@ -7,6 +7,8 @@ class MergeRequest < ActiveRecord::Base
attr_accessible
:title
,
:assignee_id
,
:closed
,
:target_branch
,
:source_branch
,
attr_accessible
:title
,
:assignee_id
,
:closed
,
:target_branch
,
:source_branch
,
:author_id_of_changes
:author_id_of_changes
attr_accessor
:should_remove_source_branch
BROKEN_DIFF
=
"--broken-diff"
BROKEN_DIFF
=
"--broken-diff"
UNCHECKED
=
1
UNCHECKED
=
1
...
@@ -16,9 +18,8 @@ class MergeRequest < ActiveRecord::Base
...
@@ -16,9 +18,8 @@ class MergeRequest < ActiveRecord::Base
serialize
:st_commits
serialize
:st_commits
serialize
:st_diffs
serialize
:st_diffs
attr_accessor
:should_remove_source_branch
validates
:source_branch
,
presence:
true
validates
:target_branch
,
presence:
true
validates_presence_of
:source_branch
,
:target_branch
validate
:validate_branches
validate
:validate_branches
def
self
.
find_all_by_branch
(
branch_name
)
def
self
.
find_all_by_branch
(
branch_name
)
...
...
app/models/milestone.rb
View file @
df7c5248
...
@@ -4,7 +4,8 @@ class Milestone < ActiveRecord::Base
...
@@ -4,7 +4,8 @@ class Milestone < ActiveRecord::Base
belongs_to
:project
belongs_to
:project
has_many
:issues
has_many
:issues
validates_presence_of
:title
,
:project_id
validates
:title
,
presence:
true
validates
:project
,
presence:
true
def
self
.
active
def
self
.
active
where
(
"due_date > ? OR due_date IS NULL"
,
Date
.
today
)
where
(
"due_date > ? OR due_date IS NULL"
,
Date
.
today
)
...
...
app/models/note.rb
View file @
df7c5248
...
@@ -2,10 +2,13 @@ require 'carrierwave/orm/activerecord'
...
@@ -2,10 +2,13 @@ require 'carrierwave/orm/activerecord'
require
'file_size_validator'
require
'file_size_validator'
class
Note
<
ActiveRecord
::
Base
class
Note
<
ActiveRecord
::
Base
mount_uploader
:attachment
,
AttachmentUploader
attr_accessible
:note
,
:noteable
,
:noteable_id
,
:noteable_type
,
:project_id
,
attr_accessible
:note
,
:noteable
,
:noteable_id
,
:noteable_type
,
:project_id
,
:attachment
,
:line_code
:attachment
,
:line_code
attr_accessor
:notify
attr_accessor
:notify_author
belongs_to
:project
belongs_to
:project
belongs_to
:noteable
,
polymorphic:
true
belongs_to
:noteable
,
polymorphic:
true
belongs_to
:author
,
class_name:
"User"
belongs_to
:author
,
class_name:
"User"
...
@@ -13,18 +16,17 @@ class Note < ActiveRecord::Base
...
@@ -13,18 +16,17 @@ class Note < ActiveRecord::Base
delegate
:name
,
to: :project
,
prefix:
true
delegate
:name
,
to: :project
,
prefix:
true
delegate
:name
,
:email
,
to: :author
,
prefix:
true
delegate
:name
,
:email
,
to: :author
,
prefix:
true
attr_accessor
:notify
validates
:project
,
presence:
true
attr_accessor
:notify_author
validates_presence_of
:project
validates
:note
,
presence:
true
,
length:
{
within:
0
..
5000
}
validates
:note
,
presence:
true
,
length:
{
within:
0
..
5000
}
validates
:attachment
,
file_size:
{
maximum:
10
.
megabytes
.
to_i
}
validates
:attachment
,
file_size:
{
maximum:
10
.
megabytes
.
to_i
}
mount_uploader
:attachment
,
AttachmentUploader
# Scopes
scope
:common
,
where
(
noteable_id:
nil
)
scope
:common
,
where
(
noteable_id:
nil
)
scope
:today
,
where
(
"created_at >= :date"
,
date:
Date
.
today
)
scope
:today
,
where
(
"created_at >= :date"
,
date:
Date
.
today
)
scope
:last_week
,
where
(
"created_at >= :date"
,
date:
(
Date
.
today
-
7
.
days
))
scope
:last_week
,
where
(
"created_at >= :date"
,
date:
(
Date
.
today
-
7
.
days
))
scope
:since
,
lambda
{
|
day
|
where
(
"created_at >= :date"
,
date:
(
day
))
}
scope
:since
,
->
(
day
)
{
where
(
"created_at >= :date"
,
date:
(
day
))
}
scope
:fresh
,
order
(
"created_at ASC, id ASC"
)
scope
:fresh
,
order
(
"created_at ASC, id ASC"
)
scope
:inc_author_project
,
includes
(
:project
,
:author
)
scope
:inc_author_project
,
includes
(
:project
,
:author
)
scope
:inc_author
,
includes
(
:author
)
scope
:inc_author
,
includes
(
:author
)
...
...
app/models/project.rb
View file @
df7c5248
...
@@ -28,20 +28,35 @@ class Project < ActiveRecord::Base
...
@@ -28,20 +28,35 @@ class Project < ActiveRecord::Base
delegate
:name
,
to: :owner
,
allow_nil:
true
,
prefix:
true
delegate
:name
,
to: :owner
,
allow_nil:
true
,
prefix:
true
# Validations
validates
:owner
,
presence:
true
validates
:description
,
length:
{
within:
0
..
2000
}
validates
:name
,
uniqueness:
true
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:path
,
uniqueness:
true
,
presence:
true
,
length:
{
within:
0
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:code
,
presence:
true
,
uniqueness:
true
,
length:
{
within:
1
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:issues_enabled
,
:wall_enabled
,
:merge_requests_enabled
,
:wiki_enabled
,
inclusion:
{
in:
[
true
,
false
]
}
validate
:check_limit
,
:repo_name
# Scopes
# Scopes
scope
:public_only
,
where
(
private_flag:
false
)
scope
:public_only
,
where
(
private_flag:
false
)
scope
:without_user
,
->
(
user
)
{
where
(
"id NOT IN (:ids)"
,
ids:
user
.
projects
.
map
(
&
:id
)
)
}
scope
:without_user
,
->
(
user
)
{
where
(
"id NOT IN (:ids)"
,
ids:
user
.
projects
.
map
(
&
:id
)
)
}
scope
:not_in_group
,
->
(
group
)
{
where
(
"id NOT IN (:ids)"
,
ids:
group
.
project_ids
)
}
scope
:not_in_group
,
->
(
group
)
{
where
(
"id NOT IN (:ids)"
,
ids:
group
.
project_ids
)
}
def
self
.
active
class
<<
self
def
active
joins
(
:issues
,
:notes
,
:merge_requests
).
order
(
"issues.created_at, notes.created_at, merge_requests.created_at DESC"
)
joins
(
:issues
,
:notes
,
:merge_requests
).
order
(
"issues.created_at, notes.created_at, merge_requests.created_at DESC"
)
end
end
def
self
.
search
query
def
search
query
where
(
"name LIKE :query OR code LIKE :query OR path LIKE :query"
,
query:
"%
#{
query
}
%"
)
where
(
"name LIKE :query OR code LIKE :query OR path LIKE :query"
,
query:
"%
#{
query
}
%"
)
end
end
def
self
.
create_by_user
(
params
,
user
)
def
create_by_user
(
params
,
user
)
project
=
Project
.
new
params
project
=
Project
.
new
params
Project
.
transaction
do
Project
.
transaction
do
...
@@ -66,6 +81,11 @@ class Project < ActiveRecord::Base
...
@@ -66,6 +81,11 @@ class Project < ActiveRecord::Base
project
project
end
end
def
access_options
UsersProject
.
access_roles
end
end
def
git_error?
def
git_error?
error_code
==
:gitolite
error_code
==
:gitolite
end
end
...
@@ -74,20 +94,6 @@ class Project < ActiveRecord::Base
...
@@ -74,20 +94,6 @@ class Project < ActiveRecord::Base
id
&&
valid?
id
&&
valid?
end
end
# Validations
validates
:owner
,
presence:
true
validates
:description
,
length:
{
within:
0
..
2000
}
validates
:name
,
uniqueness:
true
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:path
,
uniqueness:
true
,
presence:
true
,
length:
{
within:
0
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:code
,
presence:
true
,
uniqueness:
true
,
length:
{
within:
1
..
255
},
format:
{
with:
/\A[a-zA-Z][a-zA-Z0-9_\-\.]*\z/
,
message:
"only letters, digits & '_' '-' '.' allowed. Letter should be first"
}
validates
:issues_enabled
,
:wall_enabled
,
:merge_requests_enabled
,
:wiki_enabled
,
inclusion:
{
in:
[
true
,
false
]
}
validate
:check_limit
,
:repo_name
def
check_limit
def
check_limit
unless
owner
.
can_create_project?
unless
owner
.
can_create_project?
errors
[
:base
]
<<
(
"Your own projects limit is
#{
owner
.
projects_limit
}
! Please contact administrator to increase it"
)
errors
[
:base
]
<<
(
"Your own projects limit is
#{
owner
.
projects_limit
}
! Please contact administrator to increase it"
)
...
@@ -102,10 +108,6 @@ class Project < ActiveRecord::Base
...
@@ -102,10 +108,6 @@ class Project < ActiveRecord::Base
end
end
end
end
def
self
.
access_options
UsersProject
.
access_roles
end
def
to_param
def
to_param
code
code
end
end
...
...
app/models/protected_branch.rb
View file @
df7c5248
...
@@ -4,7 +4,8 @@ class ProtectedBranch < ActiveRecord::Base
...
@@ -4,7 +4,8 @@ class ProtectedBranch < ActiveRecord::Base
attr_accessible
:name
attr_accessible
:name
belongs_to
:project
belongs_to
:project
validates_presence_of
:name
,
:project_id
validates
:name
,
presence:
true
validates
:project
,
presence:
true
after_save
:update_repository
after_save
:update_repository
after_destroy
:update_repository
after_destroy
:update_repository
...
...
app/models/snippet.rb
View file @
df7c5248
...
@@ -9,11 +9,13 @@ class Snippet < ActiveRecord::Base
...
@@ -9,11 +9,13 @@ class Snippet < ActiveRecord::Base
delegate
:name
,
:email
,
to: :author
,
prefix:
true
delegate
:name
,
:email
,
to: :author
,
prefix:
true
validates_presence_of
:author_id
,
:project_id
validates
:author
,
presence:
true
validates
:project
,
presence:
true
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:file_name
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:file_name
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:content
,
presence:
true
,
length:
{
within:
0
..
10000
}
validates
:content
,
presence:
true
,
length:
{
within:
0
..
10000
}
# Scopes
scope
:fresh
,
order
(
"created_at DESC"
)
scope
:fresh
,
order
(
"created_at DESC"
)
scope
:non_expired
,
where
([
"expires_at IS NULL OR expires_at > ?"
,
Time
.
current
])
scope
:non_expired
,
where
([
"expires_at IS NULL OR expires_at > ?"
,
Time
.
current
])
scope
:expired
,
where
([
"expires_at IS NOT NULL AND expires_at < ?"
,
Time
.
current
])
scope
:expired
,
where
([
"expires_at IS NOT NULL AND expires_at < ?"
,
Time
.
current
])
...
...
app/models/system_hook.rb
View file @
df7c5248
class
SystemHook
<
WebHook
class
SystemHook
<
WebHook
def
async_execute
(
data
)
Resque
.
enqueue
(
SystemHookWorker
,
id
,
data
)
end
def
self
.
all_hooks_fire
(
data
)
def
self
.
all_hooks_fire
(
data
)
SystemHook
.
all
.
each
do
|
sh
|
SystemHook
.
all
.
each
do
|
sh
|
sh
.
async_execute
data
sh
.
async_execute
data
end
end
end
end
def
async_execute
(
data
)
Resque
.
enqueue
(
SystemHookWorker
,
id
,
data
)
end
end
end
# == Schema Information
# == Schema Information
...
...
app/models/user.rb
View file @
df7c5248
...
@@ -27,22 +27,18 @@ class User < ActiveRecord::Base
...
@@ -27,22 +27,18 @@ class User < ActiveRecord::Base
validates
:extern_uid
,
:allow_blank
=>
true
,
:uniqueness
=>
{
:scope
=>
:provider
}
validates
:extern_uid
,
:allow_blank
=>
true
,
:uniqueness
=>
{
:scope
=>
:provider
}
validates
:projects_limit
,
presence:
true
,
numericality:
{
greater_than_or_equal_to:
0
}
validates
:projects_limit
,
presence:
true
,
numericality:
{
greater_than_or_equal_to:
0
}
scope
:not_in_project
,
lambda
{
|
project
|
where
(
"id not in (:ids)"
,
ids:
project
.
users
.
map
(
&
:id
)
)
}
scope
:admins
,
where
(
admin:
true
)
scope
:blocked
,
where
(
blocked:
true
)
scope
:active
,
where
(
blocked:
false
)
before_validation
:generate_password
,
on: :create
before_validation
:generate_password
,
on: :create
before_save
:ensure_authentication_token
before_save
:ensure_authentication_token
alias_attribute
:private_token
,
:authentication_token
alias_attribute
:private_token
,
:authentication_token
def
generate_password
# Scopes
if
self
.
force_random_password
scope
:not_in_project
,
->
(
project
)
{
where
(
"id not in (:ids)"
,
ids:
project
.
users
.
map
(
&
:id
)
)
}
self
.
password
=
self
.
password_confirmation
=
Devise
.
friendly_token
.
first
(
8
)
scope
:admins
,
where
(
admin:
true
)
end
scope
:blocked
,
where
(
blocked:
true
)
end
scope
:active
,
where
(
blocked:
false
)
def
self
.
filter
filter_name
class
<<
self
def
filter
filter_name
case
filter_name
case
filter_name
when
"admins"
;
self
.
admins
when
"admins"
;
self
.
admins
when
"blocked"
;
self
.
blocked
when
"blocked"
;
self
.
blocked
...
@@ -52,28 +48,35 @@ class User < ActiveRecord::Base
...
@@ -52,28 +48,35 @@ class User < ActiveRecord::Base
end
end
end
end
def
self
.
without_projects
def
without_projects
where
(
'id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)'
)
where
(
'id NOT IN (SELECT DISTINCT(user_id) FROM users_projects)'
)
end
end
def
self
.
create_from_omniauth
(
auth
,
ldap
=
false
)
def
create_from_omniauth
(
auth
,
ldap
=
false
)
gitlab_auth
.
create_from_omniauth
(
auth
,
ldap
)
gitlab_auth
.
create_from_omniauth
(
auth
,
ldap
)
end
end
def
self
.
find_or_new_for_omniauth
(
auth
)
def
find_or_new_for_omniauth
(
auth
)
gitlab_auth
.
find_or_new_for_omniauth
(
auth
)
gitlab_auth
.
find_or_new_for_omniauth
(
auth
)
end
end
def
self
.
find_for_ldap_auth
(
auth
,
signed_in_resource
=
nil
)
def
find_for_ldap_auth
(
auth
,
signed_in_resource
=
nil
)
gitlab_auth
.
find_for_ldap_auth
(
auth
,
signed_in_resource
)
gitlab_auth
.
find_for_ldap_auth
(
auth
,
signed_in_resource
)
end
end
def
self
.
gitlab_auth
def
gitlab_auth
Gitlab
::
Auth
.
new
Gitlab
::
Auth
.
new
end
end
def
self
.
search
query
def
search
query
where
(
"name LIKE :query OR email LIKE :query"
,
query:
"%
#{
query
}
%"
)
where
(
"name LIKE :query or email LIKE :query"
,
query:
"%
#{
query
}
%"
)
end
end
def
generate_password
if
self
.
force_random_password
self
.
password
=
self
.
password_confirmation
=
Devise
.
friendly_token
.
first
(
8
)
end
end
end
end
end
...
...
app/models/users_project.rb
View file @
df7c5248
...
@@ -14,13 +14,14 @@ class UsersProject < ActiveRecord::Base
...
@@ -14,13 +14,14 @@ class UsersProject < ActiveRecord::Base
after_save
:update_repository
after_save
:update_repository
after_destroy
:update_repository
after_destroy
:update_repository
validates
_uniqueness_of
:user_id
,
scope:
[
:project_id
],
message:
"already exists in project"
validates
:user
,
presence:
true
validates
_presence_of
:user_id
validates
:user_id
,
uniqueness:
{
:scope
=>
[
:project_id
],
message:
"already exists in project"
}
validates
_presence_of
:project_id
validates
:project
,
presence:
true
delegate
:name
,
:email
,
to: :user
,
prefix:
true
delegate
:name
,
:email
,
to: :user
,
prefix:
true
def
self
.
bulk_delete
(
project
,
user_ids
)
class
<<
self
def
bulk_delete
(
project
,
user_ids
)
UsersProject
.
transaction
do
UsersProject
.
transaction
do
UsersProject
.
where
(
:user_id
=>
user_ids
,
:project_id
=>
project
.
id
).
each
do
|
users_project
|
UsersProject
.
where
(
:user_id
=>
user_ids
,
:project_id
=>
project
.
id
).
each
do
|
users_project
|
users_project
.
destroy
users_project
.
destroy
...
@@ -28,7 +29,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -28,7 +29,7 @@ class UsersProject < ActiveRecord::Base
end
end
end
end
def
self
.
bulk_update
(
project
,
user_ids
,
project_access
)
def
bulk_update
(
project
,
user_ids
,
project_access
)
UsersProject
.
transaction
do
UsersProject
.
transaction
do
UsersProject
.
where
(
:user_id
=>
user_ids
,
:project_id
=>
project
.
id
).
each
do
|
users_project
|
UsersProject
.
where
(
:user_id
=>
user_ids
,
:project_id
=>
project
.
id
).
each
do
|
users_project
|
users_project
.
project_access
=
project_access
users_project
.
project_access
=
project_access
...
@@ -37,7 +38,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -37,7 +38,7 @@ class UsersProject < ActiveRecord::Base
end
end
end
end
def
self
.
bulk_import
(
project
,
user_ids
,
project_access
)
def
bulk_import
(
project
,
user_ids
,
project_access
)
UsersProject
.
transaction
do
UsersProject
.
transaction
do
user_ids
.
each
do
|
user_id
|
user_ids
.
each
do
|
user_id
|
users_project
=
UsersProject
.
new
(
users_project
=
UsersProject
.
new
(
...
@@ -50,7 +51,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -50,7 +51,7 @@ class UsersProject < ActiveRecord::Base
end
end
end
end
def
self
.
user_bulk_import
(
user
,
project_ids
,
project_access
)
def
user_bulk_import
(
user
,
project_ids
,
project_access
)
UsersProject
.
transaction
do
UsersProject
.
transaction
do
project_ids
.
each
do
|
project_id
|
project_ids
.
each
do
|
project_id
|
users_project
=
UsersProject
.
new
(
users_project
=
UsersProject
.
new
(
...
@@ -63,7 +64,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -63,7 +64,7 @@ class UsersProject < ActiveRecord::Base
end
end
end
end
def
self
.
access_roles
def
access_roles
{
{
"Guest"
=>
GUEST
,
"Guest"
=>
GUEST
,
"Reporter"
=>
REPORTER
,
"Reporter"
=>
REPORTER
,
...
@@ -71,6 +72,7 @@ class UsersProject < ActiveRecord::Base
...
@@ -71,6 +72,7 @@ class UsersProject < ActiveRecord::Base
"Master"
=>
MASTER
"Master"
=>
MASTER
}
}
end
end
end
def
role_access
def
role_access
project_access
project_access
...
...
app/models/web_hook.rb
View file @
df7c5248
app/models/wiki.rb
View file @
df7c5248
...
@@ -5,8 +5,9 @@ class Wiki < ActiveRecord::Base
...
@@ -5,8 +5,9 @@ class Wiki < ActiveRecord::Base
belongs_to
:user
belongs_to
:user
has_many
:notes
,
as: :noteable
,
dependent: :destroy
has_many
:notes
,
as: :noteable
,
dependent: :destroy
validates
:content
,
:title
,
:user_id
,
presence:
true
validates
:content
,
presence:
true
validates
:title
,
length:
1
..
250
validates
:user
,
presence:
true
validates
:title
,
presence:
true
,
length:
1
..
250
before_update
:set_slug
before_update
:set_slug
...
@@ -16,12 +17,7 @@ class Wiki < ActiveRecord::Base
...
@@ -16,12 +17,7 @@ class Wiki < ActiveRecord::Base
protected
protected
def
set_slug
def
self
.
regenerate_from
wiki
self
.
slug
=
self
.
title
.
parameterize
end
class
<<
self
def
regenerate_from
wiki
regenerated_field
=
[
:slug
,
:content
,
:title
]
regenerated_field
=
[
:slug
,
:content
,
:title
]
new_wiki
=
Wiki
.
new
new_wiki
=
Wiki
.
new
...
@@ -30,7 +26,11 @@ class Wiki < ActiveRecord::Base
...
@@ -30,7 +26,11 @@ class Wiki < ActiveRecord::Base
end
end
new_wiki
new_wiki
end
end
def
set_slug
self
.
slug
=
self
.
title
.
parameterize
end
end
end
end
# == Schema Information
# == Schema Information
...
...
app/roles/account.rb
View file @
df7c5248
...
@@ -41,7 +41,7 @@ module Account
...
@@ -41,7 +41,7 @@ module Account
# Remove user from all projects and
# Remove user from all projects and
# set blocked attribute to true
# set blocked attribute to true
def
block
def
block
users_projects
.
all
.
each
do
|
membership
|
users_projects
.
find_
each
do
|
membership
|
return
false
unless
membership
.
destroy
return
false
unless
membership
.
destroy
end
end
...
...
app/roles/authority.rb
View file @
df7c5248
app/roles/issue_commonality.rb
View file @
df7c5248
...
@@ -8,12 +8,9 @@ module IssueCommonality
...
@@ -8,12 +8,9 @@ module IssueCommonality
belongs_to
:assignee
,
class_name:
"User"
belongs_to
:assignee
,
class_name:
"User"
has_many
:notes
,
as: :noteable
,
dependent: :destroy
has_many
:notes
,
as: :noteable
,
dependent: :destroy
validates_presence_of
:project_id
validates
:project
,
presence:
true
validates_presence_of
:author_id
validates
:author
,
presence:
true
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:title
,
presence:
true
,
length:
{
within:
0
..
255
}
validates
:closed
,
inclusion:
{
in:
[
true
,
false
]
}
validates
:closed
,
inclusion:
{
in:
[
true
,
false
]
}
scope
:opened
,
where
(
closed:
false
)
scope
:opened
,
where
(
closed:
false
)
...
...
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