OSDN Git Service

Updated readme, Roles in progress
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 15 Feb 2012 21:51:04 +0000 (23:51 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 15 Feb 2012 21:51:04 +0000 (23:51 +0200)
15 files changed:
app/assets/images/help_commit.png [deleted file]
app/assets/images/help_merge_request.png [deleted file]
app/assets/stylesheets/common.scss
app/controllers/protected_branches_controller.rb
app/helpers/projects_helper.rb
app/models/users_project.rb
app/views/help/index.html.haml
app/views/help/permissions.html.haml [new file with mode: 0644]
app/views/help/workflow.html.haml [new file with mode: 0644]
app/views/projects/team.html.haml
app/views/protected_branches/index.html.haml
app/views/repositories/_branches_head.html.haml
app/views/team_members/_form.html.haml
app/views/team_members/_show.html.haml
config/routes.rb

diff --git a/app/assets/images/help_commit.png b/app/assets/images/help_commit.png
deleted file mode 100644 (file)
index e0a49b7..0000000
Binary files a/app/assets/images/help_commit.png and /dev/null differ
diff --git a/app/assets/images/help_merge_request.png b/app/assets/images/help_merge_request.png
deleted file mode 100644 (file)
index a6b5d3d..0000000
Binary files a/app/assets/images/help_merge_request.png and /dev/null differ
index 2c0fcaf..bc72689 100644 (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 } 
index c91bd90..81bfbe6 100644 (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
index 0c0ce0f..d78a4af 100644 (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
index dd84392..82302b1 100644 (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)
index fd1f512..2b0b5a1 100644 (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
diff --git a/app/views/help/permissions.html.haml b/app/views/help/permissions.html.haml
new file mode 100644 (file)
index 0000000..1e54a91
--- /dev/null
@@ -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
diff --git a/app/views/help/workflow.html.haml b/app/views/help/workflow.html.haml
new file mode 100644 (file)
index 0000000..4785b36
--- /dev/null
@@ -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
+
index 884c164..a19f570 100644 (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}
 
index 055d936..dde90af 100644 (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
               = 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
index d98dedc..dd4d686 100644 (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
index ec31deb..bc4ee35 100644 (file)
     = 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"
+    .input= f.select :_project_access, options_for_select(UsersProject.access_roles, @team_member.role_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"
+
+  -#.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();
index e5cd947..90a5de6 100644 (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
index e7a96fb..5d880df 100644 (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