saucy 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +15 -1
- data/Gemfile.lock +67 -1
- data/Rakefile +26 -0
- data/app/controllers/memberships_controller.rb +33 -1
- data/app/models/invitation.rb +1 -1
- data/app/models/membership.rb +22 -0
- data/app/models/permission.rb +17 -0
- data/app/models/signup.rb +3 -3
- data/app/views/memberships/edit.html.erb +18 -0
- data/app/views/memberships/index.html.erb +4 -4
- data/config/routes.rb +2 -3
- data/features/run_features.feature +4 -3
- data/features/step_definitions/rails_steps.rb +3 -0
- data/lib/generators/saucy/features/templates/factories.rb +4 -4
- data/lib/generators/saucy/features/templates/step_definitions/session_steps.rb +6 -3
- data/lib/generators/saucy/features/templates/step_definitions/user_steps.rb +6 -4
- data/lib/generators/saucy/install/templates/create_saucy_tables.rb +8 -6
- data/lib/saucy/account.rb +9 -5
- data/lib/saucy/project.rb +28 -5
- data/lib/saucy/user.rb +5 -12
- data/spec/controllers/memberships_controller_spec.rb +87 -5
- data/spec/environment.rb +91 -0
- data/spec/models/account_spec.rb +17 -6
- data/spec/models/membership_spec.rb +37 -0
- data/spec/models/permission_spec.rb +19 -0
- data/spec/models/project_spec.rb +39 -9
- data/spec/models/user_spec.rb +16 -42
- data/spec/scaffold/config/routes.rb +5 -0
- data/spec/spec_helper.rb +8 -1
- data/spec/support/authentication_helpers.rb +16 -6
- metadata +75 -74
- data/app/controllers/permissions_controller.rb +0 -17
- data/app/models/account_membership.rb +0 -8
- data/app/models/project_membership.rb +0 -14
- data/app/views/permissions/edit.html.erb +0 -15
- data/spec/controllers/permissions_controller_spec.rb +0 -69
- data/spec/models/account_membership_spec.rb +0 -13
- data/spec/models/project_membership_spec.rb +0 -22
@@ -1,15 +0,0 @@
|
|
1
|
-
<h2>Permissions for <span><%= @user.name %></span> on <%= current_account.name %></h2>
|
2
|
-
|
3
|
-
<%= render :partial => 'accounts/tab_bar' %>
|
4
|
-
|
5
|
-
<%= semantic_form_for @user,
|
6
|
-
:as => :permissions,
|
7
|
-
:url => account_user_permissions_path(current_account, @user) do |form| -%>
|
8
|
-
<%= form.inputs do -%>
|
9
|
-
<%= form.input :projects, :as => :check_boxes, :collection => @projects %>
|
10
|
-
<% end -%>
|
11
|
-
<%= form.buttons do -%>
|
12
|
-
<%= form.commit_button "Update" %>
|
13
|
-
<% end -%>
|
14
|
-
<% end -%>
|
15
|
-
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe PermissionsController, "routes" do
|
4
|
-
it { should route(:get, "/accounts/abc/users/def/permissions/edit").
|
5
|
-
to(:action => :edit, :account_id => 'abc', :user_id => 'def') }
|
6
|
-
it { should route(:put, "/accounts/abc/users/def/permissions").
|
7
|
-
to(:action => :update, :account_id => 'abc', :user_id => 'def') }
|
8
|
-
end
|
9
|
-
|
10
|
-
describe PermissionsController, "permissions", :as => :account_member do
|
11
|
-
let(:user) { Factory.stub(:user) }
|
12
|
-
it { should deny_access.
|
13
|
-
on(:get, :edit, :account_id => account.to_param,
|
14
|
-
:user_id => user.to_param).
|
15
|
-
flash(/admin/) }
|
16
|
-
end
|
17
|
-
|
18
|
-
describe PermissionsController, "edit", :as => :account_admin do
|
19
|
-
let(:edited_user) { Factory.stub(:user) }
|
20
|
-
let(:projects) { [Factory.stub(:project)] }
|
21
|
-
|
22
|
-
before do
|
23
|
-
Account.stubs(:find_by_url! => account)
|
24
|
-
User.stubs(:find => edited_user)
|
25
|
-
account.stubs(:projects_by_name => projects)
|
26
|
-
get :edit, :account_id => account.to_param, :user_id => edited_user.to_param
|
27
|
-
end
|
28
|
-
|
29
|
-
it "renders the edit template" do
|
30
|
-
should respond_with(:success)
|
31
|
-
should render_template(:edit)
|
32
|
-
end
|
33
|
-
|
34
|
-
it "assigns projects by name" do
|
35
|
-
account.should have_received(:projects_by_name)
|
36
|
-
should assign_to(:projects).with(projects)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "assigns the user being edited" do
|
40
|
-
should assign_to(:user).with(edited_user)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe PermissionsController, "update", :as => :account_admin do
|
45
|
-
let(:edited_user) { Factory.stub(:user) }
|
46
|
-
let(:project_ids) { [1, 2, 3] }
|
47
|
-
|
48
|
-
before do
|
49
|
-
Account.stubs(:find_by_url! => account)
|
50
|
-
User.stubs(:find => edited_user)
|
51
|
-
edited_user.stubs(:update_permissions_for)
|
52
|
-
put :update, :account_id => account.to_param,
|
53
|
-
:user_id => edited_user.to_param,
|
54
|
-
:permissions => { :project_ids => project_ids }
|
55
|
-
end
|
56
|
-
|
57
|
-
it "redirects to the memberships index" do
|
58
|
-
should redirect_to(account_memberships_url(account))
|
59
|
-
end
|
60
|
-
|
61
|
-
it "update permissions" do
|
62
|
-
edited_user.should have_received(:update_permissions_for).with(account, project_ids)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "sets a flash message" do
|
66
|
-
should set_the_flash.to(/update/i)
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe AccountMembership do
|
4
|
-
it { should belong_to(:account) }
|
5
|
-
it { should belong_to(:user) }
|
6
|
-
it { should validate_presence_of(:account_id) }
|
7
|
-
it { should validate_presence_of(:user_id) }
|
8
|
-
|
9
|
-
describe "given an existing account membership" do
|
10
|
-
before { Factory(:account_membership) }
|
11
|
-
it { should validate_uniqueness_of(:user_id).scoped_to(:account_id) }
|
12
|
-
end
|
13
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe ProjectMembership do
|
4
|
-
it { should belong_to(:project) }
|
5
|
-
it { should belong_to(:user) }
|
6
|
-
end
|
7
|
-
|
8
|
-
describe ProjectMembership, "for a user that isn't an account member" do
|
9
|
-
let!(:account) { Factory(:account) }
|
10
|
-
let!(:other_account) { Factory(:account) }
|
11
|
-
let!(:project) { Factory(:project, :account => account) }
|
12
|
-
let!(:user) { Factory(:user) }
|
13
|
-
subject { Factory.build(:project_membership, :project => project,
|
14
|
-
:user => user) }
|
15
|
-
|
16
|
-
before { Factory(:account_membership, :user => user, :account => other_account) }
|
17
|
-
|
18
|
-
it "isn't valid" do
|
19
|
-
should_not be_valid
|
20
|
-
subject.errors[:base].first.should =~ /account/i
|
21
|
-
end
|
22
|
-
end
|