protected virtual AzUserInfo GetAzUserInfo() { try { if (ApplicationName.IsNullOrEmpty()) { Logger?.Warn("AzmanAdapter: This Application Name should not be empty."); return(null); } if (AuthenticationService == null) { Logger?.Warn("AzmanAdapter: This AuthenticationService is not found."); return(null); } using (var context = new AzManContext(_connectionString)) { var app = context.GetApplication(ApplicationName); return(app.GetUserInfo(AuthenticationService.UserName)); } } catch (Exception ex) { this.Logger?.Exception(ex); return(null); } }
public void GetAll_Applications_XmlFile_Test() { using (var azMan = new AzManContext(new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" })) { var apps = azMan.Applications; Assert.IsTrue(apps.Count > 0); } }
public void Add_Update_Delete_Operation() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; app?.Delete(); } using (var azMan = new AzManContext(conn)) { var app = azMan.CreateApplication("AppNew1"); //Create Operations app.Operations.Add(new AzOperation { Id = 1, Name = "Op1" }); app.Operations.Add(new AzOperation { Id = 2, Name = "Op2" }); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; //Assert Creation Assert.IsTrue(app.Operations.Count == 2); Assert.IsTrue(app.Operations.Any(c => c.Name == "Op1")); Assert.IsTrue(app.Operations.Any(c => c.Name == "Op2")); //Delete Ops app.Operations.RemoveAt(0); //Update Ops app.Operations[0].Name = "Op22"; app.Operations[0].Id = 22; app.Operations.Add(new AzOperation { Id = 3, Name = "Op3" }); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; //Assert Updates and Deletion. Assert.IsTrue(app.Operations.Count == 2); Assert.IsTrue(app.Operations.Any(c => c.Name == "Op22")); Assert.IsTrue(app.Operations.Any(c => c.Name == "Op3")); } }
public void GetUserInfo_UserName_Test() { using (var context = new AzManContext("TestData\\AzMan.xml")) { var app = context.GetApplication("App1"); var userInfo = app.GetUserInfo("steven"); Assert.IsTrue(userInfo.Operations.Any()); Assert.IsTrue(userInfo.Roles.Any()); Assert.IsTrue(userInfo.Groups.Any()); } }
public void GetAll_Roles_Test() { using (var azMan = new AzManContext(new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" })) { var app = azMan.Applications.FirstOrDefault(); Assert.IsNotNull(app); Assert.IsTrue(app.Roles.Count > 0); } }
public void GetAll_Applications_Sql_Test() { var conn = @"mssql://Driver={SQL Server};Server={.};/AzManStore/Testing"; //var conn = @"Mssql://Driver={SQL Server};Server={SIN8506,3009\bizapps};/sgAzManDB/AzmanStore"; using (var azMan = new AzManContext(conn)) { var apps = azMan.Applications; Assert.IsTrue(apps.Count > 0); } }
internal AzApplication(AzManContext context, IAzApplication app = null) { Guard.ArgumentIsNotNull(context, nameof(context)); _context = context; IAzItem = app; Operations = new AzItemCollection <AzOperation>(this, GetOperations, () => !IsNew); Operations.CollectionChanged += TheValue_HasChanged; Scopes = new AzItemCollection <AzScope>(this, GetScopes, () => !IsNew); Scopes.CollectionChanged += TheValue_HasChanged; }
public void Application_Groups_Test() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications.FirstOrDefault(); Assert.IsNotNull(app); Assert.IsTrue(app.Groups.Count > 0); } }
public void Get_Operations_Roles_Test() { using (var azMan = new AzManContext(new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" })) { var app = azMan.Applications.FirstOrDefault(); var role = app?.Roles.FirstOrDefault(r => r.Name == "Role2"); Assert.IsNotNull(role); Assert.IsTrue(role.AssignedOperations.Count > 0); Assert.IsTrue(role.AssignedRoles.Count > 0); } }
public void Application_Groups_Members_Test() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications.FirstOrDefault(); var group = app?.Groups.FirstOrDefault(); Assert.IsNotNull(group); Assert.IsTrue(group.Members.Count > 0); Assert.IsTrue(group.Members.Any(m => m.AssignedRoles.Count > 0)); } }
public void Scope_Group_Test() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications.FirstOrDefault(); Assert.IsNotNull(app); var scope = app.Scopes.FirstOrDefault(); Assert.IsNotNull(scope); var group = scope.Groups.FirstOrDefault(); Assert.IsNotNull(group); Assert.IsTrue(group.Members.Count > 0); } }
public void Add_Update_Delete_Scope() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; app?.Delete(); } using (var azMan = new AzManContext(conn)) { var app = azMan.CreateApplication("AppNew1"); //Operations app.Operations.Add(new AzOperation { Id = 1, Name = "Op1" }); app.Operations.Add(new AzOperation { Id = 2, Name = "Op2" }); //Role var role1 = new AzRole { Name = "Role1" }; role1.AssignedOperations.Add(app.Operations.First()); app.Roles.Add(role1); var scope1 = new AzScope { Name = "Scope1" }; app.Scopes.Add(scope1); //Group var member1 = new AzMember { Name = "Administrator" }; member1.AssignedRoles.Add(role1); var group1 = new AzGroup { Name = "Group1" }; group1.Members.Add(member1); scope1.Groups.Add(group1); var member2 = new AzMember { Name = "Administrator" }; member2.AssignedRoles.Add(role1); var member3 = new AzMember { Name = "Steven" }; member3.AssignedRoles.Add(role1); var group2 = new AzGroup { Name = "Group2" }; group2.Members.Add(member2); group2.Members.Add(member3); scope1.Groups.Add(group2); var scope2 = new AzScope { Name = "Scope2" }; app.Scopes.Add(scope2); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; //Assert Scope Assert.IsTrue(app.Scopes.Count == 2); Assert.IsTrue(app.Scopes.Any(s => s.Name == "Scope1")); Assert.IsTrue(app.Scopes.Any(s => s.Name == "Scope2")); Assert.IsTrue(app.Scopes["Scope1"].Groups.Count == 2); Assert.IsTrue(app.Scopes["Scope1"].Groups.Any(g => g.Name == "Group1")); Assert.IsTrue(app.Scopes["Scope1"].Groups.Any(g => g.Name == "Group2")); Assert.IsTrue(app.Scopes["Scope1"].Groups["Group1"].Members.Count == 1); Assert.IsTrue(app.Scopes["Scope1"].Groups["Group2"].Members.Count == 2); Assert.IsTrue(app.Scopes["Scope1"].Groups.All(g => g.Members.All(m => m.AssignedRoles.Count == 1))); //Delete Scope app.Scopes.Remove("Scope1"); //Update Scope app.Scopes["Scope2"].Name = "Scope22"; app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; Assert.IsTrue(app.Scopes.Count == 1); Assert.IsTrue(app.Scopes.Any(s => s.Name == "Scope22")); } }
public void Add_Update_Delete_Group() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; app?.Delete(); } using (var azMan = new AzManContext(conn)) { var app = azMan.CreateApplication("AppNew1"); //Operations app.Operations.Add(new AzOperation { Id = 1, Name = "Op1" }); app.Operations.Add(new AzOperation { Id = 2, Name = "Op2" }); //Role var role1 = new AzRole { Name = "Role1" }; role1.AssignedOperations.Add(app.Operations.First()); app.Roles.Add(role1); var role2 = new AzRole { Name = "Role2" }; role2.AssignedRoles.Add(role1); app.Roles.Add(role2); //Group var member1 = new AzMember { Name = "Administrator" }; member1.AssignedRoles.Add(role1); var group1 = new AzGroup { Name = "Group1" }; group1.Members.Add(member1); app.Groups.Add(group1); var member2 = new AzMember { Name = "Administrator" }; member2.AssignedRoles.Add(role2); var member3 = new AzMember { Name = "Steven" }; member3.AssignedRoles.Add(role2); var group2 = new AzGroup { Name = "Group2" }; group2.Members.Add(member2); group2.Members.Add(member3); app.Groups.Add(group2); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; //Assert Groups Assert.IsTrue(app.Groups.Count == 2); Assert.IsTrue(app.Groups.Any(g => g.Name == "Group1")); Assert.IsTrue(app.Groups.Any(g => g.Name == "Group2")); Assert.IsTrue(app.Groups["Group1"].Members.Count == 1); Assert.IsTrue(app.Groups["Group2"].Members.Count == 2); Assert.IsTrue(app.Groups.All(g => g.Members.All(m => m.AssignedRoles.Count == 1))); //Delete groups app.Groups.RemoveAt(0); //Update groups app.Groups["Group2"].Name = "Group22"; //app.Groups["Group22"].Members.First(m => m.Name.EndsWith("Administrator", StringComparison.OrdinalIgnoreCase)).Name = "Steven"; app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; Assert.IsTrue(app.Groups.Count == 1); Assert.IsTrue(app.Groups.Any(g => g.Name == "Group22")); Assert.IsTrue(app.Groups.All(g => g.Members.Count == 2)); Assert.IsTrue(app.Groups.All(g => g.Members.Any(u => u.Name.EndsWith("Steven")))); Assert.IsTrue(app.Groups.All(g => g.Members.Any(u => u.Name.EndsWith("Steven")))); Assert.IsTrue(app.Groups.All(g => g.Members.All(m => m.AssignedRoles.Count == 1))); } }
public void Add_Update_Delete_Role() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; app?.Delete(); } using (var azMan = new AzManContext(conn)) { var app = azMan.CreateApplication("AppNew1"); var op1 = new AzOperation { Id = 1, Name = "Op1" }; app.Operations.Add(op1); app.Operations.Add(new AzOperation { Id = 2, Name = "Op2" }); var role1 = new AzRole { Name = "Role1" }; role1.AssignedOperations.Add(op1); app.Roles.Add(role1); var role2 = new AzRole { Name = "Role2" }; role2.AssignedRoles.Add(role1); app.Roles.Add(role2); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; Assert.IsTrue(app.Roles.Count == 2); Assert.IsTrue(app.Roles.Any(c => c.Name == "Role1")); Assert.IsTrue(app.Roles["Role1"].AssignedOperations.Any(c => c.Name == "Op1")); Assert.IsTrue(app.Roles["Role2"].AssignedRoles.Any(c => c.Name == "Role1")); app.Roles.RemoveAt(0); app.Roles[0].Name = "Role22"; app.Roles[0].AssignedRoles.Clear(); app.Roles[0].AssignedOperations.Add(app.Operations.First()); var role3 = new AzRole { Name = "Role3" }; role3.AssignedRoles.Add(app.Roles.First()); app.Roles.Add(role3); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew1"]; Assert.IsTrue(app.Roles.Count == 2); Assert.IsTrue(app.Roles.Any(c => c.Name == "Role22")); Assert.IsTrue(app.Roles.Any(c => c.Name == "Role3")); } }
public void Create_Delete_Application_Test() { var conn = new AzXmlConnectionStringBuilder { FileName = "TestData\\AzMan.xml" }; using (var azMan = new AzManContext(conn)) { var app = azMan.CreateApplication("AppNew"); app.Operations.Add(new AzOperation { Id = 1, Name = "Op1" }); app.Operations.Add(new AzOperation { Id = 2, Name = "Op2" }); var role1 = new AzRole { Name = "Role1" }; role1.AssignedOperations.Add(app.Operations.FirstOrDefault()); app.Roles.Add(role1); app.Groups.Add(new AzGroup { Name = "Group1" }); var scope1 = new AzScope { Name = "Scope1", Description = "Scope1" }; app.Scopes.Add(scope1); var role2 = new AzRole { Name = "Role2" }; role2.AssignedRoles.Add(role1); scope1.Roles.Add(role2); var group2 = new AzGroup { Name = "Group2" }; scope1.Groups.Add(group2); var m = new AzMember { Name = "Administrator" }; group2.Members.Add(m); m.AssignedRoles.Add(role2); app.Save(); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew"]; Assert.IsNotNull(app); Assert.IsTrue(app.Operations.Count == 2); Assert.IsTrue(app.Operations.Any(op => op.Name == "Op1")); Assert.IsTrue(app.Operations.Any(op => op.Name == "Op2")); Assert.IsTrue(app.Roles.Count == 1); Assert.IsTrue(app.Roles.Any(op => op.Name == "Role1")); Assert.IsTrue(app.Roles["Role1"].AssignedOperations.Any()); //Group1 wont be saved because there is no member. Assert.IsTrue(app.Groups.Count == 0); //Assert.IsTrue(app.Groups.Any(op => op.Name == "Group1")); Assert.IsTrue(app.Scopes.Count == 1); Assert.IsTrue(app.Scopes.Any(op => op.Name == "Scope1" && op.Description == "Scope1")); Assert.IsTrue(app.Scopes["Scope1"].Roles.Count > 0); Assert.IsTrue(app.Scopes["Scope1"].Roles["Role2"].AssignedRoles.Any()); Assert.IsTrue(app.Scopes["Scope1"].Groups.Count == 1); Assert.IsTrue(app.Scopes["Scope1"].Groups.Any(op => op.Name == "Group2")); Assert.IsTrue(app.Scopes["Scope1"].Groups["Group2"].Members.Count > 0); Assert.IsTrue(app.Scopes["Scope1"].Groups["Group2"].Members.First().AssignedRoles.First().Name == "Role2"); //Delete app. app.Delete(); //The app has been removed out of the Application List. Assert.IsNull(azMan.Applications["AppNew"]); } using (var azMan = new AzManContext(conn)) { var app = azMan.Applications["AppNew"]; Assert.IsNull(app); } }