[Notice] Announcing the End of Demo Server [Read me]

only manager and site manager can see the project settings menu
@88469590eb60eba4ef38270a9b3a2b4e99014ef6
--- app/models/ProjectUser.java
+++ app/models/ProjectUser.java
... | ... | @@ -174,4 +174,41 @@ |
174 | 174 |
} |
175 | 175 |
return false; |
176 | 176 |
} |
177 |
+ |
|
178 |
+ public static String roleOf(String loginId, Project project) { |
|
179 |
+ String roleName = "guest"; |
|
180 |
+ if(loginId == null) { |
|
181 |
+ return roleName; |
|
182 |
+ } |
|
183 |
+ |
|
184 |
+ User user = User.findByLoginId(loginId); |
|
185 |
+ if(user == null) { |
|
186 |
+ return roleName; |
|
187 |
+ } |
|
188 |
+ |
|
189 |
+ if(user.isSiteManager()) { |
|
190 |
+ return "siteManager"; |
|
191 |
+ } else if(!user.isAnonymous()) { |
|
192 |
+ Role role = Role.findRoleByIds(user.id, project.id); |
|
193 |
+ if(role != null) { |
|
194 |
+ return role.name.toLowerCase(); |
|
195 |
+ } |
|
196 |
+ } |
|
197 |
+ return roleName; |
|
198 |
+ } |
|
199 |
+ |
|
200 |
+ public static boolean isAllowedToSettings(String loginId, Project project) { |
|
201 |
+ if(loginId == null) { |
|
202 |
+ return false; |
|
203 |
+ } |
|
204 |
+ |
|
205 |
+ User user = User.findByLoginId(loginId); |
|
206 |
+ if(user == null || user.isAnonymous()) { |
|
207 |
+ return false; |
|
208 |
+ } |
|
209 |
+ if(user.isSiteManager() || ProjectUser.isManager(user.id, project.id)) { |
|
210 |
+ return true; |
|
211 |
+ } |
|
212 |
+ return false; |
|
213 |
+ } |
|
177 | 214 |
} |
--- test/models/ProjectUserTest.java
+++ test/models/ProjectUserTest.java
... | ... | @@ -28,7 +28,7 @@ |
28 | 28 |
assertThat(ProjectUser.findByIds(2l, 3l).role.id) |
29 | 29 |
.isEqualTo(2l); |
30 | 30 |
} |
31 |
- |
|
31 |
+ |
|
32 | 32 |
@Test |
33 | 33 |
public void assignRole() throws Exception { |
34 | 34 |
// Given |
... | ... | @@ -40,7 +40,7 @@ |
40 | 40 |
assertThat(ProjectUser.findByIds(2l, 1l).role.id).isEqualTo(2l); |
41 | 41 |
assertThat(ProjectUser.findByIds(2l, 3l).role.id).isEqualTo(2l); |
42 | 42 |
} |
43 |
- |
|
43 |
+ |
|
44 | 44 |
@Test |
45 | 45 |
public void isManager() throws Exception { |
46 | 46 |
// Given |
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 |
assertThat(ProjectUser.checkOneMangerPerOneProject(1l)).isEqualTo(true); |
52 | 52 |
assertThat(ProjectUser.checkOneMangerPerOneProject(3l)).isEqualTo(true); |
53 | 53 |
} |
54 |
- |
|
54 |
+ |
|
55 | 55 |
@Test |
56 | 56 |
public void isMember() throws Exception { |
57 | 57 |
// Given |
... | ... | @@ -60,7 +60,7 @@ |
60 | 60 |
assertThat(ProjectUser.isMember(2l, 2l)).isEqualTo(true); |
61 | 61 |
assertThat(ProjectUser.isMember(2l, 3l)).isEqualTo(false); |
62 | 62 |
} |
63 |
- |
|
63 |
+ |
|
64 | 64 |
@Test |
65 | 65 |
public void options() throws Exception { |
66 | 66 |
// Given |
... | ... | @@ -68,7 +68,7 @@ |
68 | 68 |
// Then |
69 | 69 |
assertThat(ProjectUser.options(1l).containsValue("k16wire")).isEqualTo(true); |
70 | 70 |
} |
71 |
- |
|
71 |
+ |
|
72 | 72 |
@Test |
73 | 73 |
public void findMemberListByProject() throws Exception { |
74 | 74 |
// Given |
... | ... | @@ -80,4 +80,46 @@ |
80 | 80 |
assertThat(projectUsers.get(0).user.loginId).isEqualTo("hobi"); |
81 | 81 |
assertThat(projectUsers.get(0).role.name).isEqualTo("manager"); |
82 | 82 |
} |
83 |
+ |
|
84 |
+ @Test |
|
85 |
+ public void roleOf() { |
|
86 |
+ // GIVEN |
|
87 |
+ String loginId = "hobi"; |
|
88 |
+ Project project = Project.findByNameAndOwner(loginId, "nForge4java"); |
|
89 |
+ // WHEN |
|
90 |
+ String roleName = ProjectUser.roleOf(loginId, project); |
|
91 |
+ // THEN |
|
92 |
+ assertThat(roleName).isEqualTo("manager"); |
|
93 |
+ |
|
94 |
+ // WHEN |
|
95 |
+ roleName = ProjectUser.roleOf("admin", project); |
|
96 |
+ // THEN |
|
97 |
+ assertThat(roleName).isEqualTo("siteManager"); |
|
98 |
+ |
|
99 |
+ // WHEN |
|
100 |
+ roleName = ProjectUser.roleOf(null, project); |
|
101 |
+ // THEN |
|
102 |
+ assertThat(roleName).isEqualTo("guest"); |
|
103 |
+ |
|
104 |
+ // WHEN |
|
105 |
+ roleName = ProjectUser.roleOf("keesun", project); |
|
106 |
+ // THEN |
|
107 |
+ assertThat(roleName).isEqualTo("guest"); |
|
108 |
+ } |
|
109 |
+ |
|
110 |
+ @Test |
|
111 |
+ public void isAllowedToSettings() { |
|
112 |
+ // GIVEN |
|
113 |
+ String loginId = "hobi"; |
|
114 |
+ Project project = Project.findByNameAndOwner(loginId, "nForge4java"); |
|
115 |
+ // WHEN // THEN |
|
116 |
+ assertThat(ProjectUser.isAllowedToSettings(loginId, project)).isTrue(); |
|
117 |
+ // WHEN // THEN |
|
118 |
+ assertThat(ProjectUser.isAllowedToSettings("admin", project)).isTrue(); |
|
119 |
+ // WHEN // THEN |
|
120 |
+ assertThat(ProjectUser.isAllowedToSettings(null, project)).isFalse(); |
|
121 |
+ // WHEN // THEN |
|
122 |
+ assertThat(ProjectUser.isAllowedToSettings("keesun", project)).isFalse(); |
|
123 |
+ |
|
124 |
+ } |
|
83 | 125 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?