1 17 package org.alfresco.webservice.test; 18 19 import org.alfresco.webservice.accesscontrol.ACE; 20 import org.alfresco.webservice.accesscontrol.ACL; 21 import org.alfresco.webservice.accesscontrol.AccessControlServiceSoapBindingStub; 22 import org.alfresco.webservice.accesscontrol.AccessStatus; 23 import org.alfresco.webservice.accesscontrol.GetClassPermissionsResult; 24 import org.alfresco.webservice.accesscontrol.GetPermissionsResult; 25 import org.alfresco.webservice.accesscontrol.HasPermissionsResult; 26 import org.alfresco.webservice.accesscontrol.OwnerResult; 27 import org.alfresco.webservice.administration.NewUserDetails; 28 import org.alfresco.webservice.types.NamedValue; 29 import org.alfresco.webservice.types.Predicate; 30 import org.alfresco.webservice.types.Reference; 31 import org.alfresco.webservice.util.Constants; 32 import org.alfresco.webservice.util.WebServiceFactory; 33 import org.apache.commons.logging.Log; 34 import org.apache.commons.logging.LogFactory; 35 36 39 public class AccessControlServiceSystemTest extends BaseWebServiceSystemTest 40 { 41 private static Log logger = LogFactory.getLog(AccessControlServiceSystemTest.class); 42 43 private String userName1 = null; 44 private String userName2 = null; 45 46 private AccessControlServiceSoapBindingStub accessControlService = WebServiceFactory.getAccessControlService(); 47 48 private void createUsers() throws Exception 49 { 50 this.userName1 = "user1" + System.currentTimeMillis(); 51 this.userName2 = "user2" + System.currentTimeMillis(); 52 53 String homeFolder = store.getScheme().getValue() + "://" + store.getAddress() + "/" + folderReference.getUuid(); 55 NewUserDetails[] newUsers = new NewUserDetails[] { 56 new NewUserDetails( 57 this.userName1, 58 "password", 59 createPersonProperties(homeFolder, "first", "middle", "last", "email", "org")), 60 new NewUserDetails( 61 this.userName2, 62 "password", 63 createPersonProperties(homeFolder, "first", "middle", "last", "email", "org")) }; 64 65 WebServiceFactory.getAdministrationService().createUsers(newUsers); 67 } 68 69 private NamedValue[] createPersonProperties( 70 String homeFolder, 71 String firstName, 72 String middleName, 73 String lastName, 74 String email, 75 String orgId) 76 { 77 return new NamedValue[] { 79 new NamedValue(Constants.PROP_USER_HOMEFOLDER, homeFolder), 80 new NamedValue(Constants.PROP_USER_FIRSTNAME, firstName), 81 new NamedValue(Constants.PROP_USER_MIDDLENAME, middleName), 82 new NamedValue(Constants.PROP_USER_LASTNAME, lastName), 83 new NamedValue(Constants.PROP_USER_EMAIL, email), 84 new NamedValue(Constants.PROP_USER_ORGID, orgId) }; 85 } 86 87 private void removeUsers() throws Exception 88 { 89 String [] userNames = new String []{this.userName1, this.userName2}; 90 WebServiceFactory.getAdministrationService().deleteUsers(userNames); 91 } 92 93 96 public void testGetSetRemoveACEs() throws Exception 97 { 98 Predicate predicate = new Predicate(new Reference[]{BaseWebServiceSystemTest.contentReference}, null, null); 100 createUsers(); 101 102 ACL[] acls = this.accessControlService.getACLs(predicate, null); 104 assertNotNull(acls); 105 assertEquals(1, acls.length); 106 107 ACL acl = acls[0]; 109 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), acl.getReference().getUuid()); 110 assertEquals(true, acl.isInheritPermissions()); 111 assertNull(acl.getAces()); 112 113 ACE[] aces1 = new ACE[] 115 { 116 new ACE(this.userName1, Constants.READ, AccessStatus.acepted), 117 new ACE(this.userName2, Constants.WRITE, AccessStatus.acepted) 118 }; 119 ACL[] acls1 = this.accessControlService.addACEs(predicate, aces1); 120 121 assertNotNull(acls1); 123 assertEquals(1, acls1.length); 124 ACL acl1 = acls1[0]; 125 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), acl1.getReference().getUuid()); 126 assertEquals(true, acl1.isInheritPermissions()); 127 assertNotNull(acl1.getAces()); 128 assertEquals(2, acl1.getAces().length); 129 for (ACE ace1 : acl1.getAces()) 130 { 131 if (ace1.getAuthority().equals(this.userName1) == true) 132 { 133 assertEquals(Constants.READ, ace1.getPermission()); 134 assertEquals(AccessStatus.acepted, ace1.getAccessStatus()); 135 } 136 else if (ace1.getAuthority().equals(this.userName2) == true) 137 { 138 assertEquals(Constants.WRITE, ace1.getPermission()); 139 assertEquals(AccessStatus.acepted, ace1.getAccessStatus()); 140 } 141 else 142 { 143 fail("I wasn't expecting anything else here"); 144 } 145 } 146 147 ACL[] acls3 = this.accessControlService.getACLs(predicate, null); 149 assertNotNull(acls3); 150 assertEquals(1, acls3.length); 151 assertNotNull(acls3[0].getAces()); 152 assertEquals(2, acls3[0].getAces().length); 153 154 ACE[] aces2 = new ACE[] 156 { 157 new ACE(this.userName1, Constants.READ, AccessStatus.acepted) 158 }; 159 ACL[] acls4 = this.accessControlService.removeACEs(predicate, aces2); 160 assertNotNull(acls4); 161 assertEquals(1, acls4.length); 162 assertNotNull(acls4[0].getAces()); 163 assertEquals(1, acls4[0].getAces().length); 164 165 ACL[] acls5 = this.accessControlService.getACLs(predicate, null); 167 assertNotNull(acls5); 168 assertEquals(1, acls5.length); 169 assertNotNull(acls5[0].getAces()); 170 assertEquals(1, acls5[0].getAces().length); 171 172 ACL[] acls6 = this.accessControlService.removeACEs(predicate, null); 174 assertNotNull(acls6); 175 assertEquals(1, acls6.length); 176 assertNull(acls6[0].getAces()); 177 178 removeUsers(); 180 } 181 182 187 public void testGetPermissions() throws Exception 188 { 189 Predicate predicate = new Predicate(new Reference[]{BaseWebServiceSystemTest.contentReference}, null, null); 191 192 GetPermissionsResult[] results = this.accessControlService.getPermissions(predicate); 194 195 assertNotNull(results); 197 assertEquals(1, results.length); 198 GetPermissionsResult result = results[0]; 199 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), result.getReference().getUuid()); 200 assertNotNull(result.getPermissions()); 201 202 if (logger.isDebugEnabled() == true) 203 { 204 System.out.println("Node permissions:"); 205 for (String permission : result.getPermissions()) 206 { 207 System.out.println(permission); 208 } 209 System.out.println("\n"); 210 } 211 } 212 213 218 public void testGetClassPermissions() throws Exception 219 { 220 GetClassPermissionsResult[] results = this.accessControlService.getClassPermissions(new String []{Constants.TYPE_FOLDER}); 222 223 assertNotNull(results); 225 assertEquals(1, results.length); 226 GetClassPermissionsResult result = results[0]; 227 assertEquals(Constants.TYPE_FOLDER, result.getClassName()); 228 assertNotNull(result.getPermissions()); 229 230 if (logger.isDebugEnabled() == true) 231 { 232 System.out.println("Class permissions:"); 233 for (String permission : result.getPermissions()) 234 { 235 System.out.println(permission); 236 } 237 System.out.println("\n"); 238 } 239 240 } 241 242 247 public void testHasPermissions() throws Exception 248 { 249 Predicate predicate = convertToPredicate(BaseWebServiceSystemTest.contentReference); 250 251 HasPermissionsResult[] results = this.accessControlService.hasPermissions(predicate, new String []{Constants.WRITE}); 252 assertNotNull(results); 253 assertEquals(1, results.length); 254 255 HasPermissionsResult result = results[0]; 256 assertEquals(Constants.WRITE, result.getPermission()); 257 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), result.getReference().getUuid()); 258 assertEquals(AccessStatus.acepted, result.getAccessStatus()); 259 } 260 261 266 public void testSetInheritPermissions() throws Exception 267 { 268 ACL[] acls = this.accessControlService.setInheritPermission(convertToPredicate(BaseWebServiceSystemTest.contentReference), false); 269 assertNotNull(acls); 270 assertEquals(1, acls.length); 271 ACL acl = acls[0]; 272 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), acl.getReference().getUuid()); 273 assertFalse(acl.isInheritPermissions()); 274 } 275 276 280 public void testSetGetOwnable() throws Exception 281 { 282 createUsers(); 284 285 OwnerResult[] results = this.accessControlService.getOwners(convertToPredicate(BaseWebServiceSystemTest.contentReference)); 287 assertNotNull(results); 288 assertEquals(1, results.length); 289 OwnerResult result = results[0]; 290 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), result.getReference().getUuid()); 291 assertEquals("admin", result.getOwner()); 292 293 OwnerResult[] results2 = this.accessControlService.setOwners(convertToPredicate(BaseWebServiceSystemTest.contentReference), this.userName1); 295 assertNotNull(results2); 296 assertEquals(1, results2.length); 297 OwnerResult result2 = results2[0]; 298 assertEquals(BaseWebServiceSystemTest.contentReference.getUuid(), result2.getReference().getUuid()); 299 assertEquals(this.userName1, result2.getOwner()); 300 301 removeUsers(); 303 } 304 } 305 | Popular Tags |