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

new access rights implemented

parent 68154e8f
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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"
Loading
Loading
@@ -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"
 
:css
form select {
width:300px;
}
:javascript
$('select#team_member_user_id').selectmenu({width:300});
$('select#team_member_project_id').selectmenu({width:300});
$('select#team_member_user_id').chosen();
$('select#team_member_project_id').chosen();
$('select#team_member_repo_access').chosen();
$('select#team_member_project_access').chosen();
 
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -11,19 +11,13 @@
 
#infoblock
.span-6
%b Access:
%br
.span-6
= check_box_tag "read", 1, @admin_team_member.read, :disabled => :disabled
Web Access (Browse Repo)
%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 "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
 
Loading
Loading
Loading
Loading
@@ -51,9 +51,8 @@
%thead
%th Name
%th Added
%th Web
%th Git
%th Admin
%th Project Access
%th Repository Access
%th
%th
 
Loading
Loading
@@ -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
 
Loading
Loading
Loading
Loading
@@ -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();
});
})
Loading
Loading
Loading
Loading
@@ -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"
Loading
Loading
@@ -12,4 +12,5 @@
modal: true
 
});
$('select#team_member_user_id').chosen();
$('#team_member_new select#team_member_user_id').chosen();
Loading
Loading
@@ -31,9 +31,9 @@ describe Note do
 
describe :read do
before do
@p1.users_projects.create(:user => @u1, :read => false)
@p1.users_projects.create(:user => @u2, :read => true)
@p2.users_projects.create(:user => @u3, :read => true)
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_N)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_R)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_R)
end
 
it { @abilities.allowed?(@u1, :read_note, @p1).should be_false }
Loading
Loading
@@ -43,9 +43,9 @@ describe Note do
 
describe :write do
before do
@p1.users_projects.create(:user => @u1, :write => false)
@p1.users_projects.create(:user => @u2, :write => true)
@p2.users_projects.create(:user => @u3, :write => true)
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_RW)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_RW)
end
 
it { @abilities.allowed?(@u1, :write_note, @p1).should be_false }
Loading
Loading
@@ -55,9 +55,9 @@ describe Note do
 
describe :admin do
before do
@p1.users_projects.create(:user => @u1, :admin => false)
@p1.users_projects.create(:user => @u2, :admin => true)
@p2.users_projects.create(:user => @u3, :admin => true)
@p1.users_projects.create(:user => @u1, :project_access => Project::PROJECT_R)
@p1.users_projects.create(:user => @u2, :project_access => Project::PROJECT_RWA)
@p2.users_projects.create(:user => @u3, :project_access => Project::PROJECT_RWA)
end
 
it { @abilities.allowed?(@u1, :admin_note, @p1).should be_false }
Loading
Loading
Loading
Loading
@@ -32,11 +32,10 @@ describe "TeamMembers" do
describe "fill in" do
before do
page.execute_script("$('#team_member_user_id').show();")
select @user_1.name, :from => "team_member_user_id"
within "#team_member_new" do
check "team_member_read"
check "team_member_write"
within "#team_member_new" do
select @user_1.name, :from => "team_member_user_id"
select "Report", :from => "team_member_project_access"
select "Pull", :from => "team_member_repo_access"
end
end
 
Loading
Loading
@@ -48,20 +47,9 @@ describe "TeamMembers" do
 
page.should have_content @user_1.name
 
@member.read.should be_true
@member.write.should be_true
@member.admin.should be_false
end
it "should not allow creation without access selected" do
within "#team_member_new" do
uncheck "team_member_read"
uncheck "team_member_write"
uncheck "team_member_admin"
end
expect { click_button "Save" }.to_not change {UsersProject.count}
page.should have_content("Please choose at least one Role in the Access list")
@member.reload
@member.project_access.should == Project::PROJECT_RW
@member.repo_access.should == Repository::REPO_R
end
end
end
Loading
Loading
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