private void SaveAssignedOperations() { var currents = AssignOpes; var lastest = AssignedOperations.Select(o => o.Name).ToList(); //Get New Items foreach (var o in lastest.Where(o => !currents.Contains(o))) { IAzTask.AddOperation(o); } //Get Deleted Ones foreach (var o in currents.Where(o => !lastest.Contains(o))) { IAzTask.DeleteOperation(o); } }
private void CreaStrutturaSuAzMan(string azManStorePath, int n) { this.Clessidra(true); this.StartTimer(); WindowsIdentity id = WindowsIdentity.GetCurrent(); NTAccount userName = new NTAccount(id.Name); IAzAuthorizationStore store = new AzAuthorizationStoreClass(); store.Initialize(0, azManStorePath, null); object o = null; this.pb.Maximum = n - 1; for (int a = 0; a < n; a++) { IAzApplication app = store.CreateApplication("Application" + a.ToString(), null); app.Submit(0, null); this.pb.Value = a; Application.DoEvents(); //IAzClientContext ctx = app.InitializeClientContextFromToken((UInt64)id.Token, null); for (int i = 0; i < n; i++) { IAzOperation op = app.CreateOperation("Operation" + i.ToString(), o); op.OperationID = i + 1; op.Submit(0, null); IAzTask task = app.CreateTask("Task" + i.ToString(), null); task.AddOperation(op.Name, null); task.Submit(0, null); IAzTask roleTask = app.CreateTask("Role" + i.ToString(), null); roleTask.IsRoleDefinition = 1; roleTask.AddTask("Task" + i.ToString(), null); roleTask.Submit(0, null); IAzRole role = app.CreateRole("Role" + i.ToString(), null); role.AddTask("Role" + i.ToString(), null); role.AddMember(id.User.Value, null); //add current user role.Submit(0, null); } } this.StopTimer(this.txtAzManElapsed); this.Clessidra(false); }
private static void MergeStores(string fromStoreLocation, string toStoreLocation) { LogEntry entry = new LogEntry(); entry.Severity = TraceEventType.Verbose; entry.Priority = -1; if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Merging authorization stores.\nFrom Store = \"{0}\"\nTo Store = \"{1}\"...", fromStoreLocation, toStoreLocation); Logger.Write(entry); } try { AzAuthorizationStore fromStore = new AzAuthorizationStore(); fromStore.Initialize(0, fromStoreLocation, null); AzAuthorizationStore toStore = new AzAuthorizationStore(); toStore.Initialize(AZ_AZSTORE_FLAG_BATCH_UPDATE, toStoreLocation, null); foreach (IAzApplication3 fromApplication in fromStore.Applications) { IAzApplication3 toApplication = (IAzApplication3)((IAzAuthorizationStore3)toStore).OpenApplication2(fromApplication.Name, null); var operationsDictionary = new Dictionary <string, IAzOperation>(); int nextOperationId = 0; foreach (IAzOperation toOperation in toApplication.Operations) { operationsDictionary.Add(toOperation.Name, toOperation); nextOperationId = Math.Max(nextOperationId, toOperation.OperationID); } foreach (IAzOperation fromOperation in fromApplication.Operations) { IAzOperation toOperation = null; if (operationsDictionary.ContainsKey(fromOperation.Name)) { toOperation = operationsDictionary[fromOperation.Name]; } else { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding new Operation \"{0}\"...", fromOperation.Name); Logger.Write(entry); } toOperation = toApplication.CreateOperation(fromOperation.Name); nextOperationId++; toOperation.OperationID = nextOperationId; } toOperation.Description = fromOperation.Description; toOperation.Submit(); } var tasksDictionary = new Dictionary <string, IAzTask>(); foreach (IAzTask toTask in toApplication.Tasks) { tasksDictionary.Add(toTask.Name, toTask); } foreach (IAzTask fromTask in fromApplication.Tasks) { IAzTask toTask = null; if (tasksDictionary.ContainsKey(fromTask.Name)) { toTask = tasksDictionary[fromTask.Name]; } else { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding new Task \"{0}\"...", fromTask.Name); Logger.Write(entry); } toTask = toApplication.CreateTask(fromTask.Name); } toTask.IsRoleDefinition = fromTask.IsRoleDefinition; toTask.Description = fromTask.Description; foreach (string taskOperation in fromTask.Operations) { if (!((object[])toTask.Operations).Contains(taskOperation)) { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding Operation \"{0}\" to Task \"{1}\"...", taskOperation, toTask.Name); Logger.Write(entry); } toTask.AddOperation(taskOperation); } } toTask.Submit(); } var rolesDictionary = new Dictionary <string, IAzRoleDefinition>(); foreach (IAzRoleDefinition toRole in toApplication.RoleDefinitions) { rolesDictionary.Add(toRole.Name, toRole); } foreach (IAzRoleDefinition fromRole in fromApplication.RoleDefinitions) { IAzRoleDefinition toRole = null; if (rolesDictionary.ContainsKey(fromRole.Name)) { toRole = rolesDictionary[fromRole.Name]; } else { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding new Role Definition \"{0}\"...", fromRole.Name); Logger.Write(entry); } toRole = toApplication.CreateRoleDefinition(fromRole.Name); } toRole.Description = toRole.Description; foreach (string roleOperation in fromRole.Operations) { if (!((object[])toRole.Operations).Contains(roleOperation)) { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding Operation \"{0}\" to Role Definition \"{1}\"...", roleOperation, toRole.Name); Logger.Write(entry); } toRole.AddOperation(roleOperation); } } foreach (string roleTask in fromRole.Tasks) { if (!((object[])toRole.Tasks).Contains(roleTask)) { if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Adding Task \"{0}\" to Role Definition \"{1}\"...", roleTask, toRole.Name); Logger.Write(entry); } toRole.AddTask(roleTask); } } toRole.Submit(); } } if (Logger.ShouldLog(entry)) { entry.Message = string.Format("Submitting changes..."); Logger.Write(entry); } toStore.Submit(); } catch (Exception ex) { AuthorizationException authException = new AuthorizationException(string.Format("Failed to merge authorization stores.\nFrom Store = \"{0}\"\nTo Store = \"{1}\"\n", fromStoreLocation, toStoreLocation), ex); entry.Severity = TraceEventType.Error; if (Logger.ShouldLog(entry)) { entry.Message = authException.ToString(); Logger.Write(entry); } throw authException; } }