Skip to content
Snippets Groups Projects
Commit eb3e07a5 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Use project owner if no namespace. Restyled team page

parent 8bf340f5
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -94,6 +94,7 @@
}
 
input[type="text"] {
@extend .monospace;
border: 1px solid #BBB;
box-shadow: none;
margin-left: -1px;
Loading
Loading
Loading
Loading
@@ -18,7 +18,7 @@ class Ability
# Rules based on role in project
if project.master_access_for?(user)
# TODO: replace with master rules.
# Only allow project administration for owners
# Only allow project administration for namespace owners
rules << project_admin_rules
 
elsif project.dev_access_for?(user)
Loading
Loading
@@ -31,15 +31,20 @@ class Ability
rules << project_guest_rules
end
 
# If user own project namespace (Ex. group owner or account owner)
if project.namespace && project.namespace.owner == user
rules << project_admin_rules
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
 
# If user was set as direct project owner
if project.owner == user
rules << project_admin_rules
end
 
rules.flatten
end
Loading
Loading
Loading
Loading
@@ -292,4 +292,8 @@ class Project < ActiveRecord::Base
merge_requests
end
end
def namespace_owner
namespace.try(:owner)
end
end
Loading
Loading
@@ -24,10 +24,6 @@
= f.label :namespace_id
.input= f.select :namespace_id, namespaces_options(@project.namespace_id), {}, {class: 'chosen'}
 
.clearfix
= f.label :owner_id
.input= f.select :owner_id, User.all.map { |user| [user.name, user.id] }, {}, {class: 'chosen'}
- if project.repo_exists?
.clearfix
= f.label :default_branch, "Default Branch"
Loading
Loading
Loading
Loading
@@ -25,6 +25,15 @@
Name:
%td
= @project.name
%tr
%td
%b
Namespace:
%td
- if @project.namespace
= @project.namespace.human_name
- else
Global
%tr
%td
%b
Loading
Loading
@@ -34,7 +43,7 @@
%tr
%td
%b
Owner:
Created by:
%td
= @project.owner_name || '(deleted)'
%tr
Loading
Loading
Loading
Loading
@@ -15,10 +15,6 @@
= image_tag gravatar_icon(user.email, 16), class: "avatar s16"
%strong= user.name
%span.cgray= user.email
- if @project
- if @project.owner == user
%span.btn.btn-small.disabled.right Project Owner
- else
- if @group.owner == user
%span.btn.btn-small.disabled.right Group Owner
- if @group.owner == user
%span.btn.btn-small.disabled.right Group Owner
 
Loading
Loading
@@ -4,7 +4,8 @@
%body{class: "#{app_theme} project"}
= render "layouts/flash"
= render "layouts/head_panel", title: @project.name
= render 'shared/no_ssh'
- if can?(current_user, :download_code, @project)
= render 'shared/no_ssh'
.container
%ul.main_menu
= nav_link(html_options: {class: "home #{project_tab_class}"}) do
Loading
Loading
= render 'clone_panel'
 
%div.git-empty
%h4 Git global setup:
%pre.dark
= preserve do
git config --global user.name "#{current_user.name}"
git config --global user.email "#{current_user.email}"
%fieldset
%legend Git global setup:
%pre.dark
= preserve do
git config --global user.name "#{current_user.name}"
git config --global user.email "#{current_user.email}"
 
%h4.prepend-top-20 Create Repository
%pre.dark
= preserve do
mkdir #{@project.path}
cd #{@project.path}
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin #{@project.url_to_repo}
git push -u origin master
%fieldset
%legend Create Repository
%pre.dark
= preserve do
mkdir #{@project.path}
cd #{@project.path}
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin #{@project.url_to_repo}
git push -u origin master
 
%h4.prepend-top-20 Existing Git Repo?
%pre.dark
= preserve do
cd existing_git_repo
git remote add origin #{@project.url_to_repo}
git push -u origin master
%fieldset
%legend Existing Git Repo?
%pre.dark
= preserve do
cd existing_git_repo
git remote add origin #{@project.url_to_repo}
git push -u origin master
 
- if can? current_user, :admin_project, @project
.prepend-top-20
Loading
Loading
.input-prepend.project_clone_holder
%button{class: "btn active", :"data-clone" => @project.ssh_url_to_repo} SSH
%button{class: "btn", :"data-clone" => @project.http_url_to_repo}= Gitlab.config.web_protocol.upcase
= text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select span5"
= text_field_tag :project_clone, @project.url_to_repo, class: "one_click_select input-xxlarge"
- user = member.user
- allow_admin = can? current_user, :admin_project, @project
%tr{id: dom_id(member), class: "team_member_row user_#{user.id}"}
%td.span6
= link_to project_team_member_path(@project, member), title: user.name, class: "dark" do
= image_tag gravatar_icon(user.email, 40), class: "avatar s32"
= link_to project_team_member_path(@project, member), title: user.name, class: "dark" do
%strong= truncate(user.name, lenght: 40)
%br
%small.cgray= user.email
%li.wll{id: dom_id(member), class: "team_member_row user_#{user.id}"}
.row
.span6
= link_to project_team_member_path(@project, member), title: user.name, class: "dark" do
= image_tag gravatar_icon(user.email, 40), class: "avatar s32"
= link_to project_team_member_path(@project, member), title: user.name, class: "dark" do
%strong= truncate(user.name, lenght: 40)
%br
%small.cgray= user.email
 
%td.span5
.right
- if current_user == user
%span.btn.disabled This is you!
- if @project.owner == user
%span.btn.disabled.success Owner
- elsif user.blocked
%span.btn.disabled.blocked Blocked
- elsif allow_admin
= link_to project_team_member_path(project_id: @project, id: member.id), confirm: remove_from_team_message(@project, member), method: :delete, class: "very_small btn danger" do
%i.icon-minus.icon-white
.span5.right
- if allow_admin
.left
= form_for(member, as: :team_member, url: project_team_member_path(@project, member)) do |f|
= f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, class: "medium project-access-select span2"
.right
- if current_user == user
%span.btn.disabled This is you!
- if @project.namespace_owner == user
%span.btn.disabled.success Owner
- elsif user.blocked
%span.btn.disabled.blocked Blocked
- elsif allow_admin
= link_to project_team_member_path(project_id: @project, id: member.id), confirm: remove_from_team_message(@project, member), method: :delete, class: "very_small btn danger" do
%i.icon-minus.icon-white
 
- if allow_admin
= form_for(member, as: :team_member, url: project_team_member_path(@project, member)) do |f|
= f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, class: "medium project-access-select span2"
- grouper_project_members(@project).each do |access, members|
%table.low
%thead
%tr
%th.span7
= Project.access_options.key(access).pluralize
%th
%tbody
%fieldset
%legend
= Project.access_options.key(access).pluralize
%small= members.size
%ul.unstyled
- members.each do |up|
= render(partial: 'team_members/show', locals: {member: up})
 
Loading
Loading
= render "projects/project_head"
%h3.page_title
Team Members
%small (#{@project.users_projects.count})
- if can? current_user, :admin_team_member, @project
%p.slead
(#{@project.users_projects.count})
%small
Read more about project permissions
%strong= link_to "here", help_permissions_path, class: "vlink"
 
- if can? current_user, :admin_team_member, @project
%span.right
= link_to import_project_team_members_path(@project), class: "btn small grouped", title: "Import team from another project" do
Import team from another project
= link_to new_project_team_member_path(@project), class: "btn success small grouped", title: "New Team Member" do
New Team Member
%hr
 
.clearfix
= render partial: "team_members/team", locals: {project: @project}
.clearfix
%div.team-table
= render partial: "team_members/team", locals: {project: @project}
Loading
Loading
@@ -4,4 +4,4 @@
= nav_link(controller: :tree) do
= link_to 'Source', project_tree_path(@project, @ref)
%li.right
= render "shared/clone_panel"
\ No newline at end of file
= render "shared/clone_panel"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment