Skip to content

Commit

Permalink
Merge pull request #50 from lockdown56/master
Browse files Browse the repository at this point in the history
Add getImplicitPermissionsForUserInDomain()
  • Loading branch information
hsluoyz committed Nov 7, 2019
2 parents b5bde82 + c9b8b7b commit b860e21
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/main/java/org/casbin/jcasbin/main/Enforcer.java
Original file line number Diff line number Diff line change
Expand Up @@ -448,4 +448,22 @@ public List<List<String>> getImplicitPermissionsForUser(String user) {
}
return res;
}

/**
* getImplicitPermissionsForUserInDomain gets implicit permissions for a user or role in domain.
*
* @param user the user.
* @param domain the domain.
* @return implicit permissions for a user or role in domain.
*/
public List<List<String>> getImplicitPermissionsForUserInDomain(String user, String domain) {
List<String> roles = new ArrayList<>();
roles.add(user);
roles.addAll(this.getImplicitRolesForUser(user, domain));
List<List<String>> res = new ArrayList<>();
for (String n : roles) {
res.addAll(this.getPermissionsForUserInDomain(n, domain));
}
return res;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,11 @@ public void testPermissionAPIInDomain() {
testGetPermissionsInDomain(e, "admin", "domain2", asList(asList("admin", "domain2", "data2", "read"), asList("admin", "domain2", "data2", "write")));
testGetPermissionsInDomain(e, "non_exist", "domain2", asList());
}

@Test
public void testImplicitPermissionAPIInDomain() {
Enforcer e = new Enforcer("examples/rbac_with_domains_model.conf", "examples/rbac_with_domains_policy.csv");

testGetImplicitPermissionsInDomain(e, "alice", "domain1", asList(asList("admin", "domain1", "data1", "read"), asList("admin", "domain1", "data1", "write")));
}
}
9 changes: 9 additions & 0 deletions src/test/java/org/casbin/jcasbin/main/TestUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,13 @@ static void testGetPermissionsInDomain(Enforcer e, String name, String domain, L
fail("Permissions for " + name + " under " + domain + ": " + myRes + ", supposed to be " + res);
}
}

static void testGetImplicitPermissionsInDomain(Enforcer e, String name, String domain, List<List<String>> res) {
List<List<String>> myRes = e.getImplicitPermissionsForUserInDomain(name, domain);
Util.logPrint("Permissions for " + name + " under " + domain + ": " + myRes);

if (!Util.array2DEquals(res, myRes)) {
fail("Permissions for " + name + " under " + domain + ": " + myRes + ", supposed to be " + res);
}
}
}

0 comments on commit b860e21

Please sign in to comment.