|
7 | 7 | import io.grpc.StatusRuntimeException; |
8 | 8 | import java.io.BufferedReader; |
9 | 9 | import java.io.IOException; |
10 | | -import java.io.InputStream; |
11 | 10 | import java.io.InputStreamReader; |
12 | 11 | import java.util.stream.Collectors; |
13 | 12 | import org.testng.annotations.BeforeClass; |
|
16 | 15 | public class AclTest extends DgraphIntegrationTest { |
17 | 16 | private static final String USER_ID = "alice"; |
18 | 17 | private static final String USER_PASSWORD = "simplepassword"; |
19 | | - private static final String GUARDIAN_CREDS = "user=groot;password=password;namespace=0"; |
20 | 18 | private static final String PREDICATE_TO_READ = "predicate_to_read"; |
21 | 19 | private static final String PREDICATE_TO_WRITE = "predicate_to_write"; |
22 | 20 | private static final String PREDICATE_TO_ALTER = "predicate_to_alter"; |
23 | 21 | private static final String QUERY_ATTR = "name"; |
24 | 22 | private static final String UNUSED_GROUP = "unusedGroup"; |
25 | 23 | private static final String DEV_GROUP = "dev"; |
26 | 24 |
|
27 | | - private static final String DGRAPH_ENDPOINT = TEST_HOSTNAME + ":" + TEST_PORT; |
28 | | - |
29 | 25 | @BeforeClass |
30 | 26 | public void setSchema() { |
31 | 27 | dgraphClient.alter( |
@@ -88,119 +84,28 @@ private void createAccountAndData() throws Exception { |
88 | 84 | .build()); |
89 | 85 | } |
90 | 86 |
|
91 | | - private void createGroupAndACLs(String group, boolean addUserToGroup) |
92 | | - throws IOException, InterruptedException { |
| 87 | + private void createGroupAndACLs(String group, boolean addUserToGroup) throws Exception { |
93 | 88 |
|
94 | 89 | // create a new group |
95 | | - checkCmd( |
96 | | - "unable to create the group " + group, |
97 | | - "dgraph", |
98 | | - "acl", |
99 | | - "add", |
100 | | - "-a", |
101 | | - DGRAPH_ENDPOINT, |
102 | | - "-g", |
103 | | - group, |
104 | | - "--guardian-creds", |
105 | | - GUARDIAN_CREDS); |
| 90 | + TestUtil.addGroup(group); |
106 | 91 |
|
107 | 92 | if (addUserToGroup) { |
108 | | - checkCmd( |
109 | | - "unable to add user " + USER_ID + " to the group " + group, |
110 | | - "dgraph", |
111 | | - "acl", |
112 | | - "mod", |
113 | | - "-a", |
114 | | - DGRAPH_ENDPOINT, |
115 | | - "-u", |
116 | | - USER_ID, |
117 | | - "--group_list", |
118 | | - group, |
119 | | - "--guardian-creds", |
120 | | - GUARDIAN_CREDS); |
| 93 | + TestUtil.updateUser(USER_ID, group, true); |
121 | 94 | } |
122 | 95 |
|
123 | 96 | // add READ permission on the predicate_to_read to the group |
124 | | - checkCmd( |
125 | | - "unable to add READ permission on " + PREDICATE_TO_READ + " to the group " + group, |
126 | | - "dgraph", |
127 | | - "acl", |
128 | | - "mod", |
129 | | - "-a", |
130 | | - DGRAPH_ENDPOINT, |
131 | | - "-g", |
132 | | - group, |
133 | | - "-p", |
134 | | - PREDICATE_TO_READ, |
135 | | - "-m", |
136 | | - "4", |
137 | | - "--guardian-creds", |
138 | | - GUARDIAN_CREDS); |
| 97 | + TestUtil.updateGroup(group, PREDICATE_TO_READ, 4); |
139 | 98 |
|
140 | 99 | // also add READ permission on the attribute queryAttr, which is used inside the query block |
141 | | - checkCmd( |
142 | | - "unable to add READ permission on " + QUERY_ATTR + " to the group " + group, |
143 | | - "dgraph", |
144 | | - "acl", |
145 | | - "mod", |
146 | | - "-a", |
147 | | - DGRAPH_ENDPOINT, |
148 | | - "-g", |
149 | | - group, |
150 | | - "-p", |
151 | | - QUERY_ATTR, |
152 | | - "-m", |
153 | | - "4", |
154 | | - "--guardian-creds", |
155 | | - GUARDIAN_CREDS); |
| 100 | + TestUtil.updateGroup(group, QUERY_ATTR, 4); |
156 | 101 |
|
157 | | - checkCmd( |
158 | | - "unable to add WRITE permission on " + PREDICATE_TO_WRITE + " to the group " + group, |
159 | | - "dgraph", |
160 | | - "acl", |
161 | | - "mod", |
162 | | - "-a", |
163 | | - DGRAPH_ENDPOINT, |
164 | | - "-g", |
165 | | - group, |
166 | | - "-p", |
167 | | - PREDICATE_TO_WRITE, |
168 | | - "-m", |
169 | | - "2", |
170 | | - "--guardian-creds", |
171 | | - GUARDIAN_CREDS); |
| 102 | + TestUtil.updateGroup(group, PREDICATE_TO_WRITE, 2); |
172 | 103 |
|
173 | | - checkCmd( |
174 | | - "unable to add ALTER permission on " + PREDICATE_TO_ALTER + " to the group " + group, |
175 | | - "dgraph", |
176 | | - "acl", |
177 | | - "mod", |
178 | | - "-a", |
179 | | - DGRAPH_ENDPOINT, |
180 | | - "-g", |
181 | | - group, |
182 | | - "-p", |
183 | | - PREDICATE_TO_ALTER, |
184 | | - "-m", |
185 | | - "1", |
186 | | - "--guardian-creds", |
187 | | - GUARDIAN_CREDS); |
| 104 | + TestUtil.updateGroup(group, PREDICATE_TO_ALTER, 1); |
188 | 105 | } |
189 | 106 |
|
190 | | - private void removeUserFromAllGroups() throws IOException, InterruptedException { |
191 | | - checkCmd( |
192 | | - "unable to remove user " + USER_ID + " from all the groups", |
193 | | - "dgraph", |
194 | | - "acl", |
195 | | - "mod", |
196 | | - "-a", |
197 | | - DGRAPH_ENDPOINT, |
198 | | - "-u", |
199 | | - USER_ID, |
200 | | - "--group_list", |
201 | | - "", |
202 | | - "--guardian-creds", |
203 | | - GUARDIAN_CREDS); |
| 107 | + private void removeUserFromAllGroups() throws Exception { |
| 108 | + TestUtil.updateUser(USER_ID, DEV_GROUP, false); |
204 | 109 | } |
205 | 110 |
|
206 | 111 | private void queryPredicateWithUserAccount(boolean shouldFail) { |
@@ -278,47 +183,8 @@ private void verifyOperation(boolean shouldFail, String operation, Runnable runn |
278 | 183 | } |
279 | 184 |
|
280 | 185 | private void resetUser() throws Exception { |
281 | | - Process deleteUserCmd = |
282 | | - new ProcessBuilder( |
283 | | - "dgraph", |
284 | | - "acl", |
285 | | - "del", |
286 | | - "-a", |
287 | | - DGRAPH_ENDPOINT, |
288 | | - "-u", |
289 | | - USER_ID, |
290 | | - "--guardian-creds", |
291 | | - GUARDIAN_CREDS) |
292 | | - .start(); |
293 | | - deleteUserCmd.waitFor(); |
294 | | - |
295 | | - Process createUserCmd = |
296 | | - new ProcessBuilder( |
297 | | - "dgraph", |
298 | | - "acl", |
299 | | - "add", |
300 | | - "-a", |
301 | | - DGRAPH_ENDPOINT, |
302 | | - "-u", |
303 | | - USER_ID, |
304 | | - "-p", |
305 | | - USER_PASSWORD, |
306 | | - "--guardian-creds", |
307 | | - GUARDIAN_CREDS) |
308 | | - .redirectErrorStream(true) |
309 | | - .start(); |
310 | | - createUserCmd.waitFor(); |
311 | | - if (createUserCmd.exitValue() != 0) { |
312 | | - // print out the output from the command |
313 | | - InputStream inputStream = createUserCmd.getInputStream(); |
314 | | - BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); |
315 | | - String line; |
316 | | - while ((line = br.readLine()) != null) { |
317 | | - System.out.println(line); |
318 | | - } |
319 | | - |
320 | | - throw new Exception("unable to create user"); |
321 | | - } |
| 186 | + TestUtil.deleteUser(USER_ID); |
| 187 | + TestUtil.addUser(USER_ID, USER_PASSWORD); |
322 | 188 | } |
323 | 189 |
|
324 | 190 | private void checkCmd(String failureMsg, String... args) |
|
0 commit comments