3 describe "Private Project Access" do
4 let(:project) { create(:project) }
6 let(:master) { create(:user) }
7 let(:guest) { create(:user) }
8 let(:reporter) { create(:user) }
12 project.team << [master, :master]
15 project.team << [reporter, :reporter]
18 describe "Project should be private" do
21 its(:private?) { should be_true }
24 describe "GET /:project_path" do
25 subject { project_path(project) }
27 it { should be_allowed_for master }
28 it { should be_allowed_for reporter }
29 it { should be_allowed_for :admin }
30 it { should be_denied_for guest }
31 it { should be_denied_for :user }
32 it { should be_denied_for :visitor }
35 describe "GET /:project_path/tree/master" do
36 subject { project_tree_path(project, project.repository.root_ref) }
38 it { should be_allowed_for master }
39 it { should be_allowed_for reporter }
40 it { should be_allowed_for :admin }
41 it { should be_denied_for guest }
42 it { should be_denied_for :user }
43 it { should be_denied_for :visitor }
46 describe "GET /:project_path/commits/master" do
47 subject { project_commits_path(project, project.repository.root_ref, limit: 1) }
49 it { should be_allowed_for master }
50 it { should be_allowed_for reporter }
51 it { should be_allowed_for :admin }
52 it { should be_denied_for guest }
53 it { should be_denied_for :user }
54 it { should be_denied_for :visitor }
57 describe "GET /:project_path/commit/:sha" do
58 subject { project_commit_path(project, project.repository.commit) }
60 it { should be_allowed_for master }
61 it { should be_allowed_for reporter }
62 it { should be_allowed_for :admin }
63 it { should be_denied_for guest }
64 it { should be_denied_for :user }
65 it { should be_denied_for :visitor }
68 describe "GET /:project_path/compare" do
69 subject { project_compare_index_path(project) }
71 it { should be_allowed_for master }
72 it { should be_allowed_for reporter }
73 it { should be_allowed_for :admin }
74 it { should be_denied_for guest }
75 it { should be_denied_for :user }
76 it { should be_denied_for :visitor }
79 describe "GET /:project_path/team" do
80 subject { project_team_index_path(project) }
82 it { should be_allowed_for master }
83 it { should be_denied_for reporter }
84 it { should be_allowed_for :admin }
85 it { should be_denied_for guest }
86 it { should be_denied_for :user }
87 it { should be_denied_for :visitor }
90 describe "GET /:project_path/wall" do
91 subject { project_wall_path(project) }
93 it { should be_allowed_for master }
94 it { should be_allowed_for reporter }
95 it { should be_allowed_for :admin }
96 it { should be_denied_for guest }
97 it { should be_denied_for :user }
98 it { should be_denied_for :visitor }
101 describe "GET /:project_path/blob" do
103 commit = project.repository.commit
104 path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob) }.first.name
105 @blob_path = project_blob_path(project, File.join(commit.id, path))
108 it { @blob_path.should be_allowed_for master }
109 it { @blob_path.should be_allowed_for reporter }
110 it { @blob_path.should be_allowed_for :admin }
111 it { @blob_path.should be_denied_for guest }
112 it { @blob_path.should be_denied_for :user }
113 it { @blob_path.should be_denied_for :visitor }
116 describe "GET /:project_path/edit" do
117 subject { edit_project_path(project) }
119 it { should be_allowed_for master }
120 it { should be_denied_for reporter }
121 it { should be_allowed_for :admin }
122 it { should be_denied_for guest }
123 it { should be_denied_for :user }
124 it { should be_denied_for :visitor }
127 describe "GET /:project_path/deploy_keys" do
128 subject { project_deploy_keys_path(project) }
130 it { should be_allowed_for master }
131 it { should be_denied_for reporter }
132 it { should be_allowed_for :admin }
133 it { should be_denied_for guest }
134 it { should be_denied_for :user }
135 it { should be_denied_for :visitor }
138 describe "GET /:project_path/issues" do
139 subject { project_issues_path(project) }
141 it { should be_allowed_for master }
142 it { should be_allowed_for reporter }
143 it { should be_allowed_for :admin }
144 it { should be_denied_for guest }
145 it { should be_denied_for :user }
146 it { should be_denied_for :visitor }
149 describe "GET /:project_path/snippets" do
150 subject { project_snippets_path(project) }
152 it { should be_allowed_for master }
153 it { should be_allowed_for reporter }
154 it { should be_allowed_for :admin }
155 it { should be_denied_for guest }
156 it { should be_denied_for :user }
157 it { should be_denied_for :visitor }
160 describe "GET /:project_path/merge_requests" do
161 subject { project_merge_requests_path(project) }
163 it { should be_allowed_for master }
164 it { should be_allowed_for reporter }
165 it { should be_allowed_for :admin }
166 it { should be_denied_for guest }
167 it { should be_denied_for :user }
168 it { should be_denied_for :visitor }
171 describe "GET /:project_path/branches/recent" do
172 subject { recent_project_branches_path(project) }
174 it { should be_allowed_for master }
175 it { should be_allowed_for reporter }
176 it { should be_allowed_for :admin }
177 it { should be_denied_for guest }
178 it { should be_denied_for :user }
179 it { should be_denied_for :visitor }
182 describe "GET /:project_path/branches" do
183 subject { project_branches_path(project) }
187 Project.any_instance.stub(:branches).and_return([])
190 it { should be_allowed_for master }
191 it { should be_allowed_for reporter }
192 it { should be_allowed_for :admin }
193 it { should be_denied_for guest }
194 it { should be_denied_for :user }
195 it { should be_denied_for :visitor }
198 describe "GET /:project_path/tags" do
199 subject { project_tags_path(project) }
203 Project.any_instance.stub(:tags).and_return([])
206 it { should be_allowed_for master }
207 it { should be_allowed_for reporter }
208 it { should be_allowed_for :admin }
209 it { should be_denied_for guest }
210 it { should be_denied_for :user }
211 it { should be_denied_for :visitor }
214 describe "GET /:project_path/hooks" do
215 subject { project_hooks_path(project) }
217 it { should be_allowed_for master }
218 it { should be_denied_for reporter }
219 it { should be_allowed_for :admin }
220 it { should be_denied_for guest }
221 it { should be_denied_for :user }
222 it { should be_denied_for :visitor }