public void CheckRulesAsOne_AllRules_Should_Satisfied() { //result = rule1 && rule2 //result = allowedUsers || allowedRoles var logic = new RoleBasedCheckLogic(); var theRule = RoleBasedPermissionRule.Create("MockPermission", "bob, john", ""); var theRule2 = RoleBasedPermissionRule.Create("MockPermission", "", "Admin, super"); var theRules = new List <RoleBasedPermissionRule>() { theRule, theRule2 }; var bobContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "bob"); logic.CheckRulesAsOne(theRules, bobContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); var johnContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "john", "Admin"); logic.CheckRulesAsOne(theRules, johnContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var marryContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "marry", "Admin", "Super"); logic.CheckRulesAsOne(theRules, marryContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); var jackContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "jack", "FooRole"); logic.CheckRulesAsOne(theRules, jackContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); var tomContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "tom", "Leader"); logic.CheckRulesAsOne(theRules, tomContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); }
public void CheckRule_MatchPermissionId_Should_Ok() { var logic = new RoleBasedCheckLogic(); var checkContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", ""); var guestRule = RoleBasedPermissionRule.CreateGuestRule("MockPermission"); var result = logic.Check(guestRule, checkContext); result.LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); }
public void CheckLoginRule_Should_Ok() { var logic = new RoleBasedCheckLogic(); var loginRule = RoleBasedPermissionRule.CreateLoginRule("MockPermission"); var guestContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", ""); logic.Check(loginRule, guestContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); var loginContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "bob"); logic.Check(loginRule, loginContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); }
public void CheckUserRule_Should_Ok() { var logic = new RoleBasedCheckLogic(); var theRule = RoleBasedPermissionRule.Create("MockPermission", "bob, john", ""); var bobContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "bob"); logic.Check(theRule, bobContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var johnContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "john"); logic.Check(theRule, johnContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var jackContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "jack"); logic.Check(theRule, jackContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); }
public static RoleBasedPermissionRule GetRule(this IDictionary <string, RoleBasedPermissionRule> rules, string permissionId, bool autoCreate) { var exist = rules.TryGetValue(permissionId, out var theRule); if (!exist) { if (!autoCreate) { return(null); } theRule = new RoleBasedPermissionRule { PermissionId = permissionId }; rules[permissionId] = theRule; } return(theRule); }
public void CheckUserRoleRule_Should_Ok() { //result = allowedUsers || allowedRoles var logic = new RoleBasedCheckLogic(); var theRule = RoleBasedPermissionRule.Create("MockPermission", "bob, john", "Admin, super"); var bobContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "bob"); logic.Check(theRule, bobContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var johnContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "john", "FooRole"); logic.Check(theRule, johnContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var marryContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "marry", "Admin", "Super"); logic.Check(theRule, marryContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Allowed); var jackContext = MockHelper.CreatePermissionCheckContext("A, B, MockPermission", "jack", "FooRole"); logic.Check(theRule, jackContext).LogJson().Category.ShouldEqual(PermissionCheckResultCategory.Forbidden); }
public static IDictionary <string, RoleBasedPermissionRule> AddOrUpdate(this IDictionary <string, RoleBasedPermissionRule> rules, RoleBasedPermissionRule theRule) { rules.AddOrUpdate(theRule.PermissionId, theRule.AllowedUsers, theRule.AllowedRoles); return(rules); }