Skip to content

Commit 5f80bb5

Browse files
committed
fix: Make domain as default argument to make it optional
Signed-off-by: DivyPatel9881 <[email protected]>
1 parent 5070296 commit 5f80bb5

File tree

5 files changed

+64
-64
lines changed

5 files changed

+64
-64
lines changed

casbin/enforcer.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ class Enforcer : public IEnforcer{
210210
void AddFunction(string name, Function function, Index nargs);
211211

212212
/*RBAC API member functions.*/
213-
vector<string> GetRolesForUser(string name, vector<string> domain);
214-
vector<string> GetUsersForRole(string name, vector<string> domain);
213+
vector<string> GetRolesForUser(string name, vector<string> domain = {});
214+
vector<string> GetUsersForRole(string name, vector<string> domain = {});
215215
bool HasRoleForUser(string name, string role);
216216
bool AddRoleForUser(string user, string role);
217217
bool AddRolesForUser(string user, vector<string> roles);
@@ -220,8 +220,8 @@ class Enforcer : public IEnforcer{
220220
bool DeletePermissionsForUser(string user);
221221
vector<vector<string>> GetPermissionsForUser(string user);
222222
bool HasPermissionForUser(string user, vector<string> permission);
223-
vector<string> GetImplicitRolesForUser(string name, vector<string> domain);
224-
vector<vector<string>> GetImplicitPermissionsForUser(string user, vector<string> domain);
223+
vector<string> GetImplicitRolesForUser(string name, vector<string> domain = {});
224+
vector<vector<string>> GetImplicitPermissionsForUser(string user, vector<string> domain = {});
225225
vector<string> GetImplicitUsersForPermission(vector<string> permission);
226226
bool DeleteRoleForUser(string user, string role);
227227
bool DeleteRolesForUser(string user);
@@ -237,11 +237,11 @@ class Enforcer : public IEnforcer{
237237
bool removeFilteredPolicy(string sec , string ptype , int fieldIndex , vector<string> fieldValues);
238238

239239
/* RBAC API with domains.*/
240-
vector<string> GetUsersForRoleInDomain(string name, string domain);
241-
vector<string> GetRolesForUserInDomain(string name, string domain);
242-
vector<vector<string>> GetPermissionsForUserInDomain(string user, string domain);
243-
bool AddRoleForUserInDomain(string user, string role, string domain);
244-
bool DeleteRoleForUserInDomain(string user, string role, string domain);
240+
vector<string> GetUsersForRoleInDomain(string name, string domain = {});
241+
vector<string> GetRolesForUserInDomain(string name, string domain = {});
242+
vector<vector<string>> GetPermissionsForUserInDomain(string user, string domain = {});
243+
bool AddRoleForUserInDomain(string user, string role, string domain = {});
244+
bool DeleteRoleForUserInDomain(string user, string role, string domain = {});
245245

246246
};
247247

casbin/enforcer_interface.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ class IEnforcer {
6060
virtual bool EnforceWithMatcher(string matcher, Scope scope) = 0;
6161

6262
/* RBAC API */
63-
virtual vector<string> GetRolesForUser(string name, vector<string> domain) = 0;
64-
virtual vector<string> GetUsersForRole(string name, vector<string> domain) = 0;
63+
virtual vector<string> GetRolesForUser(string name, vector<string> domain = {}) = 0;
64+
virtual vector<string> GetUsersForRole(string name, vector<string> domain = {}) = 0;
6565
virtual bool HasRoleForUser(string name, string role) = 0;
6666
virtual bool AddRoleForUser(string user, string role) = 0;
6767
virtual bool AddRolesForUser(string user, vector<string> roles) = 0;
@@ -70,8 +70,8 @@ class IEnforcer {
7070
virtual bool DeletePermissionsForUser(string user) = 0;
7171
virtual vector<vector<string>> GetPermissionsForUser(string user) = 0;
7272
virtual bool HasPermissionForUser(string user, vector<string> permission) = 0;
73-
virtual vector<string> GetImplicitRolesForUser(string name, vector<string> domain) = 0;
74-
virtual vector<vector<string>> GetImplicitPermissionsForUser(string user, vector<string> domain) = 0;
73+
virtual vector<string> GetImplicitRolesForUser(string name, vector<string> domain = {}) = 0;
74+
virtual vector<vector<string>> GetImplicitPermissionsForUser(string user, vector<string> domain = {}) = 0;
7575
virtual vector<string> GetImplicitUsersForPermission(vector<string> permission) = 0;
7676
virtual bool DeleteRoleForUser(string user, string role) = 0;
7777
virtual bool DeleteRolesForUser(string user) = 0;

casbin/rbac/default_role_manager.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,28 +85,28 @@ class DefaultRoleManager : public RoleManager {
8585
// AddLink adds the inheritance link between role: name1 and role: name2.
8686
// aka role: name1 inherits role: name2.
8787
// domain is a prefix to the roles.
88-
void AddLink(string name1, string name2, vector<string> domain = vector<string>{});
88+
void AddLink(string name1, string name2, vector<string> domain = {});
8989

9090
/**
9191
* deleteLink deletes the inheritance link between role: name1 and role: name2.
9292
* aka role: name1 does not inherit role: name2 any more.
9393
* domain is a prefix to the roles.
9494
*/
95-
void DeleteLink(string name1, string name2, vector<string> domain = vector<string>{});
95+
void DeleteLink(string name1, string name2, vector<string> domain = {});
9696

9797
/**
9898
* hasLink determines whether role: name1 inherits role: name2.
9999
* domain is a prefix to the roles.
100100
*/
101-
bool HasLink(string name1, string name2, vector<string> domain = vector<string>{});
101+
bool HasLink(string name1, string name2, vector<string> domain = {});
102102

103103
/**
104104
* getRoles gets the roles that a subject inherits.
105105
* domain is a prefix to the roles.
106106
*/
107-
vector <string> GetRoles(string name, vector<string> domain = vector<string>{});
107+
vector <string> GetRoles(string name, vector<string> domain = {});
108108

109-
vector<string> GetUsers(string name, vector<string> domain = vector<string>{});
109+
vector<string> GetUsers(string name, vector<string> domain = {});
110110

111111
/**
112112
* printRoles prints all the roles to log.

test/test_management_api.cpp

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ namespace test_management_api
179179
Adapter* adapter = BatchFileAdapter::NewAdapter(policy);
180180
Enforcer* e = Enforcer::NewEnforcer(model, adapter);
181181

182-
Assert::IsTrue(ArrayEquals(vector<string>{"data2_admin"}, e->GetRolesForUser("alice", vector<string>{})));
183-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("bob", vector<string>{})));
184-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("eve", vector<string>{})));
185-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist", vector<string>{})));
182+
Assert::IsTrue(ArrayEquals(vector<string>{"data2_admin"}, e->GetRolesForUser("alice")));
183+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("bob")));
184+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("eve")));
185+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist")));
186186

187187
e->RemoveGroupingPolicy(vector<string>{"alice", "data2_admin"});
188188
e->AddGroupingPolicy(vector<string>{"bob", "data1_admin"});
@@ -194,58 +194,58 @@ namespace test_management_api
194194
};
195195

196196
e->AddGroupingPolicies(grouping_rules);
197-
Assert::IsTrue(ArrayEquals(vector<string>{"data4_admin"}, e->GetRolesForUser("ham", vector<string>{})));
198-
Assert::IsTrue(ArrayEquals(vector<string>{"data5_admin"}, e->GetRolesForUser("jack", vector<string>{})));
197+
Assert::IsTrue(ArrayEquals(vector<string>{"data4_admin"}, e->GetRolesForUser("ham")));
198+
Assert::IsTrue(ArrayEquals(vector<string>{"data5_admin"}, e->GetRolesForUser("jack")));
199199
e->RemoveGroupingPolicies(grouping_rules);
200200

201-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice", vector<string>{})));
201+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice")));
202202
vector<string> named_grouping_policy{ "alice", "data2_admin" };
203-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice", vector<string>{})));
203+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice")));
204204
e->AddNamedGroupingPolicy("g", named_grouping_policy);
205-
Assert::IsTrue(ArrayEquals(vector<string>{"data2_admin"}, e->GetRolesForUser("alice", vector<string>{})));
205+
Assert::IsTrue(ArrayEquals(vector<string>{"data2_admin"}, e->GetRolesForUser("alice")));
206206
e->RemoveNamedGroupingPolicy("g", named_grouping_policy);
207207

208208
e->AddNamedGroupingPolicies("g", grouping_rules);
209209
e->AddNamedGroupingPolicies("g", grouping_rules);
210-
Assert::IsTrue(ArrayEquals(vector<string>{"data4_admin"}, e->GetRolesForUser("ham", vector<string>{})));
211-
Assert::IsTrue(ArrayEquals(vector<string>{"data5_admin"}, e->GetRolesForUser("jack", vector<string>{})));
210+
Assert::IsTrue(ArrayEquals(vector<string>{"data4_admin"}, e->GetRolesForUser("ham")));
211+
Assert::IsTrue(ArrayEquals(vector<string>{"data5_admin"}, e->GetRolesForUser("jack")));
212212
e->RemoveNamedGroupingPolicies("g", grouping_rules);
213213
e->RemoveNamedGroupingPolicies("g", grouping_rules);
214214

215-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice", vector<string>{})));
216-
Assert::IsTrue(ArrayEquals(vector<string>{"data1_admin"}, e->GetRolesForUser("bob", vector<string>{})));
217-
Assert::IsTrue(ArrayEquals(vector<string>{"data3_admin"}, e->GetRolesForUser("eve", vector<string>{})));
218-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist", vector<string>{})));
215+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice")));
216+
Assert::IsTrue(ArrayEquals(vector<string>{"data1_admin"}, e->GetRolesForUser("bob")));
217+
Assert::IsTrue(ArrayEquals(vector<string>{"data3_admin"}, e->GetRolesForUser("eve")));
218+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist")));
219219

220-
Assert::IsTrue(ArrayEquals(vector<string>{"bob"}, e->GetUsersForRole("data1_admin", vector<string>{})));
220+
Assert::IsTrue(ArrayEquals(vector<string>{"bob"}, e->GetUsersForRole("data1_admin")));
221221
try {
222222
e->GetUsersForRole("data2_admin", vector<string>{});
223223
}
224224
catch (CasbinRBACException e) {
225225
Assert::IsTrue(true);
226226
}
227-
Assert::IsTrue(ArrayEquals(vector<string>{"eve"}, e->GetUsersForRole("data3_admin", vector<string>{})));
227+
Assert::IsTrue(ArrayEquals(vector<string>{"eve"}, e->GetUsersForRole("data3_admin")));
228228

229229
e->RemoveFilteredGroupingPolicy(0, vector<string>{"bob"});
230230

231-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice", vector<string>{})));
232-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("bob", vector<string>{})));
233-
Assert::IsTrue(ArrayEquals(vector<string>{"data3_admin"}, e->GetRolesForUser("eve", vector<string>{})));
234-
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist", vector<string>{})));
231+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("alice")));
232+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("bob")));
233+
Assert::IsTrue(ArrayEquals(vector<string>{"data3_admin"}, e->GetRolesForUser("eve")));
234+
Assert::IsTrue(ArrayEquals(vector<string>{}, e->GetRolesForUser("non_exist")));
235235

236236
try {
237-
e->GetUsersForRole("data1_admin", vector<string>{});
237+
e->GetUsersForRole("data1_admin");
238238
}
239239
catch (CasbinRBACException e) {
240240
Assert::IsTrue(true);
241241
}
242242
try {
243-
e->GetUsersForRole("data2_admin", vector<string>{});
243+
e->GetUsersForRole("data2_admin");
244244
}
245245
catch (CasbinRBACException e) {
246246
Assert::IsTrue(true);
247247
}
248-
Assert::IsTrue(ArrayEquals(vector<string>{"eve"}, e->GetUsersForRole("data3_admin", vector<string>{})));
248+
Assert::IsTrue(ArrayEquals(vector<string>{"eve"}, e->GetUsersForRole("data3_admin")));
249249
}
250250
};
251251
}

test/test_rbac_api.cpp

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,38 @@ namespace test_rbac_api
1717
TEST_METHOD(TestRoleAPI) {
1818
Enforcer* e = Enforcer::NewEnforcer("../../examples/rbac_model.conf", "../../examples/rbac_policy.csv");
1919

20-
Assert::IsTrue(ArrayEquals(vector<string>{ "data2_admin" }, e->GetRolesForUser("alice", vector<string>{})));
21-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob", vector<string>{})));
22-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin", vector<string>{})));
23-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("non_exist", vector<string>{})));
20+
Assert::IsTrue(ArrayEquals(vector<string>{ "data2_admin" }, e->GetRolesForUser("alice")));
21+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob")));
22+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin")));
23+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("non_exist")));
2424

2525
Assert::IsFalse(e->HasRoleForUser("alice", "data1_admin"));
2626
Assert::IsTrue(e->HasRoleForUser("alice", "data2_admin"));
2727

2828
e->AddRoleForUser("alice", "data1_admin");
2929

30-
Assert::IsTrue(ArrayEquals(vector<string>{ "data1_admin", "data2_admin" }, e->GetRolesForUser("alice", vector<string>{})));
31-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob", vector<string>{})));
32-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin", vector<string>{})));
30+
Assert::IsTrue(ArrayEquals(vector<string>{ "data1_admin", "data2_admin" }, e->GetRolesForUser("alice")));
31+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob")));
32+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin")));
3333

3434
e->DeleteRoleForUser("alice", "data1_admin");
3535

36-
Assert::IsTrue(ArrayEquals(vector<string>{ "data2_admin" }, e->GetRolesForUser("alice", vector<string>{})));
37-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob", vector<string>{})));
38-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin", vector<string>{})));
36+
Assert::IsTrue(ArrayEquals(vector<string>{ "data2_admin" }, e->GetRolesForUser("alice")));
37+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob")));
38+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin")));
3939

4040
e->DeleteRolesForUser("alice");
4141

42-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("alice", vector<string>{})));
43-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob", vector<string>{})));
44-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin", vector<string>{})));
42+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("alice")));
43+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob")));
44+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin")));
4545

4646
e->AddRoleForUser("alice", "data1_admin");
4747
e->DeleteUser("alice");
4848

49-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("alice", vector<string>{})));
50-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob", vector<string>{})));
51-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin", vector<string>{})));
49+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("alice")));
50+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("bob")));
51+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetRolesForUser("data2_admin")));
5252

5353
e->AddRoleForUser("alice", "data2_admin");
5454

@@ -77,7 +77,7 @@ namespace test_rbac_api
7777
Enforcer* e = Enforcer::NewEnforcer("../../examples/rbac_model.conf", "../../examples/rbac_policy.csv");
7878

7979
e->AddRolesForUser("alice", vector<string>{ "data1_admin", "data2_admin", "data3_admin" });
80-
Assert::IsTrue(ArrayEquals(vector<string>{ "data1_admin", "data2_admin", "data3_admin" }, e->GetRolesForUser("alice", vector<string>{})));
80+
Assert::IsTrue(ArrayEquals(vector<string>{ "data1_admin", "data2_admin", "data3_admin" }, e->GetRolesForUser("alice")));
8181

8282
Assert::IsTrue(e->Enforce({ "alice", "data1", "read" }));
8383
Assert::IsTrue(e->Enforce({ "alice", "data2", "read" }));
@@ -151,19 +151,19 @@ namespace test_rbac_api
151151
TestGetPermissions(e, "alice", vector<vector<string>>{ {"alice", "data1", "read"} });
152152
TestGetPermissions(e, "bob", vector<vector<string>>{ {"bob", "data2", "write"} });
153153

154-
Assert::IsTrue(ArrayEquals(vector<string>{ "admin", "data1_admin", "data2_admin" }, e->GetImplicitRolesForUser("alice", {})));
155-
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetImplicitRolesForUser("bob", {})));
154+
Assert::IsTrue(ArrayEquals(vector<string>{ "admin", "data1_admin", "data2_admin" }, e->GetImplicitRolesForUser("alice")));
155+
Assert::IsTrue(ArrayEquals(vector<string>{ }, e->GetImplicitRolesForUser("bob")));
156156

157157
e = Enforcer::NewEnforcer("../../examples/rbac_with_pattern_model.conf", "../../examples/rbac_with_pattern_policy.csv");
158158

159159
dynamic_cast<DefaultRoleManager*>(e->GetRoleManager())->AddMatchingFunc(KeyMatch);
160160

161-
Assert::IsTrue(ArrayEquals(vector<string>{ "/book/1/2/3/4/5", "pen_admin", "/book/*", "book_group" }, e->GetImplicitRolesForUser("cathy", {})));
162-
Assert::IsTrue(ArrayEquals(vector<string>{ "/book/1/2/3/4/5", "pen_admin" }, e->GetRolesForUser("cathy", vector<string>{})));
161+
Assert::IsTrue(ArrayEquals(vector<string>{ "/book/1/2/3/4/5", "pen_admin", "/book/*", "book_group" }, e->GetImplicitRolesForUser("cathy")));
162+
Assert::IsTrue(ArrayEquals(vector<string>{ "/book/1/2/3/4/5", "pen_admin" }, e->GetRolesForUser("cathy")));
163163
}
164164

165165
void TestGetImplicitPermissions(Enforcer* e, string name, vector<vector<string>> res) {
166-
vector<vector<string>> my_res = e->GetImplicitPermissionsForUser(name, {});
166+
vector<vector<string>> my_res = e->GetImplicitPermissionsForUser(name);
167167

168168
int count = 0;
169169
for (int i = 0; i < my_res.size(); i++) {

0 commit comments

Comments
 (0)