new access rights implemented

This commit is contained in:
Dmitriy Zaporozhets 2011-12-07 10:04:57 +02:00
parent 68154e8fe9
commit 1b8f082061
11 changed files with 66 additions and 82 deletions

View file

@ -30,7 +30,7 @@ class ProjectsController < ApplicationController
Project.transaction do
@project.save!
@project.users_projects.create!(:admin => true, :read => true, :write => true, :user => current_user)
@project.users_projects.create!(:repo_access => Repository::REPO_RW , :project_access => Project::PROJECT_RWA, :user => current_user)
# when project saved no team member exist so
# project repository should be updated after first user add

View file

@ -43,18 +43,17 @@
%tr
%th Name
%th Added
%th Web
%th Git
%th Admin
%th Project Access
%th Repository Access
%th
- @admin_project.users_projects.each do |tm|
%tr
%td= link_to tm.user_name, admin_team_member_path(tm)
%td
= link_to tm.user_name, admin_team_member_path(tm)
%td= time_ago_in_words(tm.updated_at) + " ago"
%td= check_box_tag "read", 1, @admin_project.readers.include?(tm.user), :disabled => :disabled
%td= check_box_tag "commit", 1, @admin_project.writers.include?(tm.user), :disabled => :disabled
%td.span-2= check_box_tag "admin", 1, @admin_project.admins.include?(tm.user), :disabled => :disabled
%td= select_tag :project_access, options_for_select(Project.access_options, tm.project_access), :class => "project-access-select", :disabled => :disabled
%td= select_tag :repo_access, options_for_select(Repository.access_options, tm.repo_access), :class => "repo-access-select", :disabled => :disabled
%td= link_to 'Destroy', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete
= link_to 'New Team Member', new_admin_team_member_path(:team_member => {:project_id => @admin_project.id}), :class => "grey-button"

View file

@ -17,21 +17,26 @@
= f.select :project_id, Project.all.map { |user| [user.name, user.id] }
.span-6
%b Access:
%b Project Access:
.span-6
= f.check_box :read
Web Access (Browse Repo)
= f.select :project_access, options_for_select(Project.access_options, @admin_team_member.project_access), {}, :class => "project-access-select"
.span-6
= f.check_box :write
Git Access (User will be added to commiters list)
%b Repository Access:
.span-6
= f.check_box :admin
Admin (Can manage project)
= f.select :repo_access, options_for_select(Repository.access_options, @admin_team_member.repo_access), {}, :class => "repo-access-select"
%br
.actions
= f.submit 'Save', :class => "grey-button"
:javascript
$('select#team_member_user_id').selectmenu({width:300});
$('select#team_member_project_id').selectmenu({width:300});
:css
form select {
width:300px;
}
:javascript
$('select#team_member_user_id').chosen();
$('select#team_member_project_id').chosen();
$('select#team_member_repo_access').chosen();
$('select#team_member_project_access').chosen();

View file

@ -3,21 +3,21 @@
%table
%thead
%th Name
%th Email
%th Read
%th Git
%th Manage
%th Project Access
%th Repo Access
%th Added
%th
%th
- members.each do |tm|
- user = tm.user
%tr
%td.span-6= link_to tm.user_name, admin_team_member_path(tm)
%td.span-6= tm.user_email
%td.span-1= check_box_tag "read", 1, project.readers.include?(user), :disabled => :disabled
%td.span-1= check_box_tag "commit", 1, project.writers.include?(user), :disabled => :disabled
%td.span-2= check_box_tag "admin", 1, project.admins.include?(user), :disabled => :disabled
%td.span-6
= link_to tm.user_name, admin_team_member_path(tm)
%br
%br
= tm.user_email
%td.span-3= select_tag :project_access, options_for_select(Project.access_options, tm.project_access), :class => "project-access-select", :disabled => :disabled
%td.span-3= select_tag :repo_access, options_for_select(Repository.access_options, tm.repo_access), :class => "repo-access-select", :disabled => :disabled
%td.span-3= time_ago_in_words(tm.updated_at) + " ago"
%td= link_to 'Edit', edit_admin_team_member_path(tm), :id => "edit_#{dom_id(tm)}"
%td= link_to 'Destroy', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete

View file

@ -11,19 +11,13 @@
#infoblock
.span-6
%b Access:
%b Project Access:
= select_tag :project_access, options_for_select(Project.access_options, @admin_team_member.project_access), :class => "project-access-select", :disabled => true
%br
.span-6
= check_box_tag "read", 1, @admin_team_member.read, :disabled => :disabled
Web Access (Browse Repo)
%br
.span-6
= check_box_tag "commit", 1, @admin_team_member.write, :disabled => :disabled
Git Access (User will be added to commiters list)
%br
.span-6.append-bottom
= check_box_tag "admin", 1, @admin_team_member.admin, :disabled => :disabled
Admin (Can manage project)
%b Repository Access:
= select_tag :repo_access, options_for_select(Repository.access_options, @admin_team_member.repo_access), :class => "repo-access-select", :disabled => true
%br

View file

@ -51,9 +51,8 @@
%thead
%th Name
%th Added
%th Web
%th Git
%th Admin
%th Project Access
%th Repository Access
%th
%th
@ -62,9 +61,8 @@
%tr
%td= link_to project.name, admin_project_path(project)
%td= time_ago_in_words(tm.updated_at) + " ago"
%td= check_box_tag "read", 1, project.readers.include?(@admin_user), :disabled => :disabled
%td= check_box_tag "commit", 1, project.writers.include?(@admin_usertm), :disabled => :disabled
%td.span-2= check_box_tag "admin", 1, project.admins.include?(@admin_user), :disabled => :disabled
%td= select_tag :project_access, options_for_select(Project.access_options, tm.project_access), :class => "project-access-select", :disabled => :disabled
%td= select_tag :repo_access, options_for_select(Repository.access_options, tm.repo_access), :class => "repo-access-select", :disabled => :disabled
%td= link_to 'Edit', edit_admin_team_member_path(tm)
%td= link_to 'Cancel', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete

View file

@ -14,7 +14,7 @@
:javascript
$(function(){
$('.repo-access-select, .project-access-select').live("change", function() {
$('#team-table .repo-access-select, #team-table .project-access-select').live("change", function() {
$(this.form).submit();
});
})

View file

@ -10,16 +10,15 @@
.span-6
= f.select(:user_id, User.not_in_project(@project).all.collect {|p| [ p.name, p.id ] }, { :include_blank => "Select user" }, { :style => "width:300px" })
.span-6
%b Access:
%b Project Access:
.span-6
= f.check_box :read
Web Access
= f.select :project_access, options_for_select(Project.access_options, @team_member.project_access), {}, :class => "project-access-select"
.span-6
= f.check_box :write
Git Access
.span-6.append-bottom
= f.check_box :admin
Admin
%b Repository Access:
.span-6
= f.select :repo_access, options_for_select(Repository.access_options, @team_member.repo_access), {}, :class => "repo-access-select"
%br
.span-6
= f.submit 'Save', :class => "grey-button"

View file

@ -12,4 +12,5 @@
modal: true
});
$('select#team_member_user_id').chosen();
$('#team_member_new select#team_member_user_id').chosen();