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
iv
gitlab-ce
Commits
d431e433
Commit
d431e433
authored
Jan 02, 2013
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix few bugs and tests after refactoring ownership logic
parent
00a1f5bc
Changes
19
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
58 additions
and
61 deletions
+58
-61
app/controllers/admin/users_controller.rb
app/controllers/admin/users_controller.rb
+2
-2
app/helpers/namespaces_helper.rb
app/helpers/namespaces_helper.rb
+1
-1
app/models/ability.rb
app/models/ability.rb
+2
-13
app/models/key.rb
app/models/key.rb
+1
-1
app/models/project.rb
app/models/project.rb
+1
-1
app/models/user.rb
app/models/user.rb
+5
-0
app/roles/account.rb
app/roles/account.rb
+1
-1
app/views/admin/projects/index.html.haml
app/views/admin/projects/index.html.haml
+4
-1
app/views/admin/users/show.html.haml
app/views/admin/users/show.html.haml
+3
-3
app/views/profiles/show.html.haml
app/views/profiles/show.html.haml
+1
-1
lib/api/projects.rb
lib/api/projects.rb
+1
-1
spec/factories.rb
spec/factories.rb
+1
-1
spec/requests/api/issues_spec.rb
spec/requests/api/issues_spec.rb
+1
-1
spec/requests/api/merge_requests_spec.rb
spec/requests/api/merge_requests_spec.rb
+1
-1
spec/requests/api/milestones_spec.rb
spec/requests/api/milestones_spec.rb
+1
-1
spec/requests/api/notes_spec.rb
spec/requests/api/notes_spec.rb
+1
-1
spec/requests/api/projects_spec.rb
spec/requests/api/projects_spec.rb
+27
-27
spec/requests/projects_spec.rb
spec/requests/projects_spec.rb
+3
-3
spec/spec_helper.rb
spec/spec_helper.rb
+1
-1
No files found.
app/controllers/admin/users_controller.rb
View file @
d431e433
...
...
@@ -9,7 +9,7 @@ class Admin::UsersController < AdminController
def
show
@admin_user
=
User
.
find
(
params
[
:id
])
@projects
=
if
@admin_user
.
projects
.
empty?
@projects
=
if
@admin_user
.
authorized_
projects
.
empty?
Project
else
Project
.
without_user
(
@admin_user
)
...
...
@@ -98,7 +98,7 @@ class Admin::UsersController < AdminController
def
destroy
@admin_user
=
User
.
find
(
params
[
:id
])
if
@admin_user
.
my_own
_projects
.
count
>
0
if
@admin_user
.
personal
_projects
.
count
>
0
redirect_to
admin_users_path
,
alert:
"User is a project owner and can't be removed."
and
return
end
@admin_user
.
destroy
...
...
app/helpers/namespaces_helper.rb
View file @
d431e433
module
NamespacesHelper
def
namespaces_options
(
selected
=
:current_user
,
scope
=
:default
)
groups
=
current_user
.
namespace
s
.
select
{
|
n
|
n
.
type
==
'Group'
}
groups
=
current_user
.
owned_group
s
.
select
{
|
n
|
n
.
type
==
'Group'
}
users
=
if
scope
==
:all
Namespace
.
root
...
...
app/models/ability.rb
View file @
d431e433
...
...
@@ -29,20 +29,9 @@ class Ability
rules
<<
project_guest_rules
end
if
project
.
namespace
# If user own project namespace
# (Ex. group owner or account owner)
if
project
.
namespace
.
owner
==
user
rules
<<
project_admin_rules
end
else
# For compatibility with global projects
# use projects.owner_id
if
project
.
owner
==
user
rules
<<
project_admin_rules
end
end
rules
.
flatten
end
...
...
app/models/key.rb
View file @
d431e433
...
...
@@ -73,7 +73,7 @@ class Key < ActiveRecord::Base
if
is_deploy_key
[
project
]
else
user
.
projects
user
.
authorized_
projects
end
end
...
...
app/models/project.rb
View file @
d431e433
...
...
@@ -80,7 +80,7 @@ class Project < ActiveRecord::Base
# Scopes
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
.
authorized_
projects
.
map
(
&
:id
)
)
}
scope
:not_in_group
,
->
(
group
)
{
where
(
"id NOT IN (:ids)"
,
ids:
group
.
project_ids
)
}
scope
:in_namespace
,
->
(
namespace
)
{
where
(
namespace_id:
namespace
.
id
)
}
scope
:sorted_by_activity
,
->
()
{
order
(
"(SELECT max(events.created_at) FROM events WHERE events.project_id = projects.id) DESC"
)
}
...
...
app/models/user.rb
View file @
d431e433
...
...
@@ -187,4 +187,9 @@ class User < ActiveRecord::Base
(projects.namespace_id IS NULL AND projects.creator_id = :user_id)"
,
namespaces:
namespaces
.
map
(
&
:id
),
user_id:
self
.
id
)
end
# Team membership in personal projects
def
tm_in_personal_projects
personal_projects
.
users_projects
.
where
(
user_id:
self
.
id
)
end
end
app/roles/account.rb
View file @
d431e433
...
...
@@ -69,7 +69,7 @@ module Account
def
projects_limit_percent
return
100
if
projects_limit
.
zero?
(
my_own
_projects
.
count
.
to_f
/
projects_limit
)
*
100
(
personal
_projects
.
count
.
to_f
/
projects_limit
)
*
100
end
def
recent_push
project_id
=
nil
...
...
app/views/admin/projects/index.html.haml
View file @
d431e433
...
...
@@ -28,7 +28,10 @@
%span
.monospace
=
project
.
path_with_namespace
+
".git"
%td
=
project
.
users_projects
.
count
%td
=
link_to
project
.
chief
.
name
,
[
:admin
,
project
.
chief
]
-
if
project
.
owner
=
link_to
project
.
owner
.
name
,
[
:admin
,
project
.
owner
]
-
else
(deleted)
%td
=
last_commit
(
project
)
%td
=
link_to
'Edit'
,
edit_admin_project_path
(
project
),
id:
"edit_
#{
dom_id
(
project
)
}
"
,
class:
"btn small"
%td
.bgred
=
link_to
'Destroy'
,
[
:admin
,
project
],
confirm:
"REMOVE
#{
project
.
name
}
? Are you sure?"
,
method: :delete
,
class:
"btn small danger"
...
...
app/views/admin/users/show.html.haml
View file @
d431e433
...
...
@@ -106,8 +106,8 @@
%td
=
link_to
group
.
name
,
admin_group_path
(
group
)
-
if
@admin_user
.
projects
.
present?
%h5
Projects:
-
if
@admin_user
.
p
ersonal_p
rojects
.
present?
%h5
P
ersonal P
rojects:
%br
%table
.zebra-striped
...
...
@@ -118,7 +118,7 @@
%th
%th
-
@admin_user
.
users
_projects
.
each
do
|
tm
|
-
@admin_user
.
tm_in_personal
_projects
.
each
do
|
tm
|
-
project
=
tm
.
project
%tr
%td
=
link_to
project
.
name_with_namespace
,
admin_project_path
(
project
)
...
...
app/views/profiles/show.html.haml
View file @
d431e433
...
...
@@ -64,7 +64,7 @@
%legend
Personal projects:
%small
.right
%span
=
current_user
.
my_own
_projects
.
count
%span
=
current_user
.
personal
_projects
.
count
of
%span
=
current_user
.
projects_limit
.padded
...
...
lib/api/projects.rb
View file @
d431e433
...
...
@@ -9,7 +9,7 @@ module Gitlab
# Example Request:
# GET /projects
get
do
@projects
=
paginate
current_user
.
projects
@projects
=
paginate
current_user
.
authorized_
projects
present
@projects
,
with:
Entities
::
Project
end
...
...
spec/factories.rb
View file @
d431e433
...
...
@@ -37,7 +37,7 @@ FactoryGirl.define do
end
factory
:namespace
do
sequence
(
:name
)
{
|
n
|
"
group
#{
n
}
"
}
sequence
(
:name
)
{
|
n
|
"
namespace
#{
n
}
"
}
path
{
name
.
downcase
.
gsub
(
/\s/
,
'_'
)
}
owner
end
...
...
spec/requests/api/issues_spec.rb
View file @
d431e433
...
...
@@ -4,7 +4,7 @@ describe Gitlab::API do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let!
(
:project
)
{
create
(
:project
,
owner:
user
)
}
let!
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
let!
(
:issue
)
{
create
(
:issue
,
author:
user
,
assignee:
user
,
project:
project
)
}
before
{
project
.
add_access
(
user
,
:read
)
}
...
...
spec/requests/api/merge_requests_spec.rb
View file @
d431e433
...
...
@@ -4,7 +4,7 @@ describe Gitlab::API do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let!
(
:project
)
{
create
(
:project
,
owner:
user
)
}
let!
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
let!
(
:merge_request
)
{
create
(
:merge_request
,
author:
user
,
assignee:
user
,
project:
project
,
title:
"Test"
)
}
before
{
project
.
add_access
(
user
,
:read
)
}
...
...
spec/requests/api/milestones_spec.rb
View file @
d431e433
...
...
@@ -4,7 +4,7 @@ describe Gitlab::API do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let!
(
:project
)
{
create
(
:project
,
owner:
user
)
}
let!
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
let!
(
:milestone
)
{
create
(
:milestone
,
project:
project
)
}
before
{
project
.
add_access
(
user
,
:read
)
}
...
...
spec/requests/api/notes_spec.rb
View file @
d431e433
...
...
@@ -4,7 +4,7 @@ describe Gitlab::API do
include
ApiHelpers
let
(
:user
)
{
create
(
:user
)
}
let!
(
:project
)
{
create
(
:project
,
owner:
user
)
}
let!
(
:project
)
{
create
(
:project
,
namespace:
user
.
namespace
)
}
let!
(
:issue
)
{
create
(
:issue
,
project:
project
,
author:
user
)
}
let!
(
:snippet
)
{
create
(
:snippet
,
project:
project
,
author:
user
)
}
let!
(
:issue_note
)
{
create
(
:note
,
noteable:
issue
,
project:
project
,
author:
user
)
}
...
...
spec/requests/api/projects_spec.rb
View file @
d431e433
This diff is collapsed.
Click to expand it.
spec/requests/projects_spec.rb
View file @
d431e433
...
...
@@ -5,7 +5,7 @@ describe "Projects" do
describe
"GET /projects/show"
do
before
do
@project
=
create
(
:project
,
owner:
@user
)
@project
=
create
(
:project
,
namespace:
@user
.
namespace
)
@project
.
add_access
(
@user
,
:read
)
visit
project_path
(
@project
)
...
...
@@ -37,7 +37,7 @@ describe "Projects" do
describe
"PUT /projects/:id"
do
before
do
@project
=
create
(
:project
,
owner:
@user
)
@project
=
create
(
:project
,
namespace:
@user
.
namespace
)
@project
.
add_access
(
@user
,
:admin
,
:read
)
visit
edit_project_path
(
@project
)
...
...
@@ -58,7 +58,7 @@ describe "Projects" do
describe
"DELETE /projects/:id"
do
before
do
@project
=
create
(
:project
,
owner:
@user
)
@project
=
create
(
:project
,
namespace:
@user
.
namespace
)
@project
.
add_access
(
@user
,
:read
,
:admin
)
visit
edit_project_path
(
@project
)
end
...
...
spec/spec_helper.rb
View file @
d431e433
...
...
@@ -38,7 +38,7 @@ RSpec.configure do |config|
stub_gitolite!
# !!! Observers disabled by default in tests
ActiveRecord
::
Base
.
observers
.
disable
(
:all
)
#
ActiveRecord::Base.observers.disable(:all)
# ActiveRecord::Base.observers.enable(:all)
# Use tmp dir for FS manipulations
...
...
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