Updated readme, Roles in progress

This commit is contained in:
Dmitriy Zaporozhets 2012-02-15 23:51:04 +02:00
parent 37224dc9c1
commit dac7c44ab3
15 changed files with 165 additions and 67 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

View file

@ -6,6 +6,10 @@ a {
}
}
.vlink {
color: $link_color !important;
}
.pills .active a {
background-color: #474D57;
}
@ -27,6 +31,7 @@ a {
.cgray { color:gray; }
.cred { color:#D12F19; }
.cgreen { color:#44aa22; }
.cblack { color:#111; }
/** COMMON STYLES **/
.left {
@ -259,3 +264,5 @@ img.lil_av {
}
}
.help li { color:#111 }

View file

@ -6,6 +6,8 @@ class ProtectedBranchesController < ApplicationController
before_filter :authorize_read_project!
before_filter :require_non_empty_project
before_filter :authorize_admin_project!, :only => [:destroy, :create]
layout "project"
def index
@ -19,5 +21,11 @@ class ProtectedBranchesController < ApplicationController
end
def destroy
@project.protected_branches.find(params[:id]).destroy
respond_to do |format|
format.html { redirect_to project_protected_branches_path }
format.js { render :nothing => true }
end
end
end

View file

@ -34,7 +34,9 @@ module ProjectsHelper
def repository_tab_class
if controller.controller_name == "repositories" ||
controller.controller_name == "hooks"
controller.controller_name == "hooks" ||
controller.controller_name == "protected_branches" ||
controller.controller_name == "deploy_keys"
"current"
end
end

View file

@ -1,4 +1,8 @@
class UsersProject < ActiveRecord::Base
REPORTER = 21
DEVELOPER = 22
MASTER = 33
belongs_to :user
belongs_to :project
@ -41,6 +45,18 @@ class UsersProject < ActiveRecord::Base
end
end
def self.access_roles
{
"Reporter" => REPORTER,
"Developer" => DEVELOPER,
"Master" => MASTER
}
end
def role_access
"#{project_access}#{repo_access}"
end
def update_repository
Gitlabhq::GitHost.system.new.configure do |c|
c.update_project(project.path, project)

View file

@ -1,43 +1,17 @@
- bash_lexer = Pygments::Lexer[:bash]
%div.help_content
%h2
Gitlabhq
%span.right v2.1
%hr
%h3 Self Hosted Git Management
%h3 Fast, secure and stable solution based on Ruby on Rails & Gitolite.
%h3
Gitlabhq
%span.right v2.2
%hr
%h4 Self Hosted Git Management
%h4 Fast, secure and stable solution based on Ruby on Rails & Gitolite.
%hr
%hr
.menu
%h3= link_to "Workflow", "#", :class => "active"
%h3 Help
.content
%h3 Clone project
.bash
%pre
git clone git@example.com:project-name.git
%ol
%li
= link_to "Workflow", help_workflow_path
%h3 Create branch with your feature
.bash
%pre
git checkout -b $feature_name
%h3 Write code. Commit changes
.bash
%pre
git commit -am "My feature is ready"
%h3 Push your branch to gitlabhq
.bash
%pre
git push origin $feature_name
%h3 Review your code
.bash= image_tag "help_commit.png", :width => 600
%h3 Open a merge request
.bash= image_tag "help_merge_request.png", :width => 600
%h3 Your team lead will review code &amp; merge it to main branch
%li
= link_to "Permissions", help_permissions_path

View file

@ -0,0 +1,27 @@
%h3 Permissions
%hr
%h4 Reporter
%ul
%li Pull project code
%li Create new issue
%li Create new merge request
%li Write on project wall
%h4 Developer
%ul
%li Pull project code
%li Create new branches
%li Push to non-protected branches
%li Remove non-protected branches
%li Add tags
%li Create new issue
%li Create new merge request
%li Write on project wall
%h4 Master
%ul
%li Full repository access
%li Full project access
%li Add new team members

View file

@ -0,0 +1,38 @@
- bash_lexer = Pygments::Lexer[:bash]
%h3 Workflow
%hr
%ol.help
%li
%p Clone project
.bash
%pre
git clone git@example.com:project-name.git
%li
%p Create branch with your feature
.bash
%pre
git checkout -b $feature_name
%li
%p Write code. Commit changes
.bash
%pre
git commit -am "My feature is ready"
%li
%p Push your branch to gitlabhq
.bash
%pre
git push origin $feature_name
%li
%p Review your code on Commits page
%li
%p Create a merge request
%li
%p Your team lead will review code &amp; merge it to main branch

View file

@ -4,9 +4,9 @@
.alert-message.block-message
= link_to new_project_team_member_path(@project), :class => "btn small right", :title => "New Team Member" do
New Team Member
Manage project team from this page.
%br
To open team member profile - click on avatar.
%p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"}
%p To open team member profile - click on avatar.
= render :partial => "team", :locals => {:project => @project}

View file

@ -1,25 +1,22 @@
= render "repositories/branches_head"
= form_for [@project, @protected_branch] do |f|
-if @protected_branch.errors.any?
.alert-message.block-message.error
%ul
- @protected_branch.errors.full_messages.each do |msg|
%li= msg
.alert-message.block-message
%p Protected branches designed to prevent push for all except #{link_to "masters", help_permissions_path, :class => "vlink"}.
%p This ability allows:
%ul
%li keep stable branches secured
%li forced code review before merge to protected branches
%p Ream more about project permissions #{link_to "here", help_permissions_path, :class => "vlink"}
.clearfix
= f.label :name
.input= f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , { :include_blank => "Select branch" }, { :style => "width:300px" })
.actions
= f.submit 'Add', :class => "primary btn"
- unless @branches.empty?
%table
%table.zebra-striped
%thead
%tr
%th Name
%th Last commit
%th
%tbody
- @branches.each do |branch|
%tr
@ -33,6 +30,25 @@
= truncate branch.commit.id.to_s, :length => 10
= time_ago_in_words(branch.commit.committed_date)
ago
%td
- if can? current_user, :admin_project, @project
= link_to 'Unprotect', [@project, branch], :confirm => 'Are you sure?', :method => :delete, :class => "danger btn small"
- if can? current_user, :admin_project, @project
= form_for [@project, @protected_branch] do |f|
-if @protected_branch.errors.any?
.alert-message.block-message.error
%ul
- @protected_branch.errors.full_messages.each do |msg|
%li= msg
.clearfix
= f.label :name
.input= f.select(:name, @project.open_branches.map { |br| [br.name, br.name] } , { :include_blank => "Select branch" }, { :style => "width:300px" })
.actions
= f.submit 'Add', :class => "primary btn"
:javascript

View file

@ -6,4 +6,4 @@
%li{:class => ("active" if current_page?(project_protected_branches_path(@project)))}
= link_to project_protected_branches_path(@project) do
Protected
%hr

View file

@ -11,13 +11,20 @@
= f.label :user_id, "Name"
.input= f.select(:user_id, User.not_in_project(@project).all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, { :style => "width:300px" })
.clearfix
= f.label :project_access, "Project Access"
.input= f.select :project_access, options_for_select(Project.access_options, @team_member.project_access), {}, :class => "project-access-select"
.clearfix
= f.label :repo_access, "Repository Access"
.input= f.select :repo_access, options_for_select(Repository.access_options, @team_member.repo_access), {}, :class => "repo-access-select"
= f.label :project_access, "Project Access"
.input= f.select :_project_access, options_for_select(UsersProject.access_roles, @team_member.role_access), {}, :class => "project-access-select"
-#.clearfix
-#= f.label :project_access, "Project Access"
-#.input= f.select :project_access, options_for_select(Project.access_options, @team_member.project_access), {}, :class => "project-access-select"
-#.clearfix
-#= f.label :repo_access, "Repository Access"
-#.input= f.select :repo_access, options_for_select(Repository.access_options, @team_member.repo_access), {}, :class => "repo-access-select"
.actions
= f.submit 'Save', :class => "btn primary"
@ -30,5 +37,6 @@
:javascript
$('select#team_member_user_id').chosen();
$('select#team_member_repo_access').chosen();
$('select#team_member_project_access').chosen();
$('select#team_member__project_access').chosen();
//$('select#team_member_repo_access').chosen();
//$('select#team_member_project_access').chosen();

View file

@ -11,9 +11,9 @@
.span3
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
= f.select :project_access, options_for_select(Project.access_options, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
.span3
= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
= f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "medium repo-access-select", :disabled => !allow_admin
= f.select :_project_access, options_for_select(UsersProject.access_roles, member.role_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
-#.span3
-#= form_for(member, :as => :team_member, :url => project_team_member_path(@project, member)) do |f|
-#= f.select :repo_access, options_for_select(Repository.access_options, member.repo_access), {}, :class => "medium repo-access-select", :disabled => !allow_admin
- if @project.owner == user
%span.label Project Owner

View file

@ -5,6 +5,8 @@ Gitlab::Application.routes.draw do
mount Resque::Server.new, at: '/info/resque'
get 'help' => 'help#index'
get 'help/permissions' => 'help#permissions'
get 'help/workflow' => 'help#workflow'
namespace :admin do
resources :users do