public void RunApplication(string[] args) { SetupCommandLine cmdLine = new SetupCommandLine(); try { cmdLine.Parse(args); using (PersistenceScope scope = new PersistenceScope(PersistenceContextType.Update)) { ((IUpdateContext)PersistenceScope.CurrentContext).ChangeSetRecorder.OperationName = GetType().FullName; // import authority tokens AuthorityTokenImporter tokenImporter = new AuthorityTokenImporter(); IList <AuthorityToken> allTokens = tokenImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext); // create the sys admin group, which has all tokens assigned by default string[] tokenStrings = CollectionUtils.Map <AuthorityToken, string, List <string> >(allTokens, t => t.Name).ToArray(); AuthorityGroupDefinition adminGroupDef = new AuthorityGroupDefinition(cmdLine.SysAdminGroup, cmdLine.SysAdminGroup, false, tokenStrings); AuthorityGroupImporter groupImporter = new AuthorityGroupImporter(); IList <AuthorityGroup> groups = groupImporter.Import(new AuthorityGroupDefinition[] { adminGroupDef }, (IUpdateContext)PersistenceScope.CurrentContext); // find the admin group entity that was just created AuthorityGroup adminGroup = CollectionUtils.SelectFirst(groups, g => g.Name == cmdLine.SysAdminGroup); // create the "sa" user CreateSysAdminUser(adminGroup, cmdLine, PersistenceScope.CurrentContext, Console.Out); // optionally import other default authority groups defined in other plugins if (cmdLine.ImportDefaultAuthorityGroups) { groupImporter.ImportFromPlugins((IUpdateContext)PersistenceScope.CurrentContext); } scope.Complete(); } } catch (CommandLineException e) { Console.WriteLine(e.Message); cmdLine.PrintUsage(Console.Out); } }
public AuthorityGroupDefinition[] GetAuthorityGroups() { //TODO: Load from XML instead AuthorityGroupDefinition admins = new AuthorityGroupDefinition( GetGroupName(DefaultUserGroup.PACSAdministrators), new string[] { #region Tokens ClearCanvas.Enterprise.Common.AuthorityTokens.Admin.Security.User, ClearCanvas.Enterprise.Common.AuthorityTokens.Admin.Security.AuthorityGroup, AuthorityTokens.Admin.Alert.Delete, AuthorityTokens.Admin.Alert.View, AuthorityTokens.Admin.ApplicationLog.Search, AuthorityTokens.Admin.Configuration.Devices, AuthorityTokens.Admin.Configuration.FileSystems, AuthorityTokens.Admin.Configuration.ServerPartitions, AuthorityTokens.Admin.Configuration.ServerRules, AuthorityTokens.Admin.Configuration.ServiceScheduling, AuthorityTokens.Admin.Configuration.PartitionArchive, AuthorityTokens.ArchiveQueue.Delete, AuthorityTokens.ArchiveQueue.Search, AuthorityTokens.RestoreQueue.Delete, AuthorityTokens.RestoreQueue.Search, AuthorityTokens.Study.Delete, AuthorityTokens.Study.Edit, AuthorityTokens.Study.Move, AuthorityTokens.Study.Restore, AuthorityTokens.Study.Search, AuthorityTokens.Study.View, AuthorityTokens.Study.ViewImages, AuthorityTokens.Study.Reprocess, AuthorityTokens.StudyIntegrityQueue.Search, AuthorityTokens.StudyIntegrityQueue.Reconcile, AuthorityTokens.ExternalRequestQueue.Search, AuthorityTokens.ExternalRequestQueue.Delete, AuthorityTokens.WorkQueue.Delete, AuthorityTokens.WorkQueue.Reprocess, AuthorityTokens.WorkQueue.Reschedule, AuthorityTokens.WorkQueue.Reset, AuthorityTokens.WorkQueue.Search, AuthorityTokens.WorkQueue.View, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllStudies, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions, #endregion }); AuthorityGroupDefinition technologists = new AuthorityGroupDefinition( GetGroupName(DefaultUserGroup.PACSTechnologists), new string[] { #region Tokens //AuthorityTokens.Admin.Alert.Delete, //AuthorityTokens.Admin.Alert.View, //AuthorityTokens.Admin.ApplicationLog.Search, //AuthorityTokens.Admin.Configuration.Devices, //AuthorityTokens.Admin.Configuration.FileSystems, //AuthorityTokens.Admin.Configuration.ServerPartitions, //AuthorityTokens.Admin.Configuration.ServerRules, //AuthorityTokens.Admin.Configuration.ServiceScheduling, AuthorityTokens.ArchiveQueue.Delete, AuthorityTokens.ArchiveQueue.Search, AuthorityTokens.RestoreQueue.Delete, AuthorityTokens.RestoreQueue.Search, AuthorityTokens.Study.Delete, AuthorityTokens.Study.Edit, AuthorityTokens.Study.Move, AuthorityTokens.Study.Restore, AuthorityTokens.Study.Search, AuthorityTokens.Study.View, AuthorityTokens.Study.ViewImages, AuthorityTokens.Study.Reprocess, AuthorityTokens.StudyIntegrityQueue.Search, AuthorityTokens.StudyIntegrityQueue.Reconcile, AuthorityTokens.WorkQueue.Delete, AuthorityTokens.WorkQueue.Reprocess, AuthorityTokens.WorkQueue.Reschedule, AuthorityTokens.WorkQueue.Reset, AuthorityTokens.WorkQueue.Search, AuthorityTokens.WorkQueue.View, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllStudies, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions, #endregion }); AuthorityGroupDefinition users = new AuthorityGroupDefinition( GetGroupName(DefaultUserGroup.PACSUsers), new string[] { #region Tokens //AuthorityTokens.Admin.Alert.Delete, //AuthorityTokens.Admin.Alert.View, //AuthorityTokens.Admin.ApplicationLog.Search, //AuthorityTokens.Admin.Configuration.Devices, //AuthorityTokens.Admin.Configuration.FileSystems, //AuthorityTokens.Admin.Configuration.ServerPartitions, //AuthorityTokens.Admin.Configuration.ServerRules, //AuthorityTokens.Admin.Configuration.ServiceScheduling, //AuthorityTokens.ArchiveQueue.Delete, AuthorityTokens.ArchiveQueue.Search, //AuthorityTokens.RestoreQueue.Delete, AuthorityTokens.RestoreQueue.Search, //AuthorityTokens.Study.Delete, //AuthorityTokens.Study.Edit, //AuthorityTokens.Study.Move, //AuthorityTokens.Study.Restore, AuthorityTokens.Study.Search, AuthorityTokens.Study.View, AuthorityTokens.StudyIntegrityQueue.Search, //AuthorityTokens.StudyIntegrityQueue.Reconcile, //AuthorityTokens.WorkQueue.Delete, //AuthorityTokens.WorkQueue.Reprocess, //AuthorityTokens.WorkQueue.Reschedule, //AuthorityTokens.WorkQueue.Reset, AuthorityTokens.WorkQueue.Search, AuthorityTokens.WorkQueue.View, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllStudies, ClearCanvas.Enterprise.Common.AuthorityTokens.DataAccess.AllPartitions, #endregion }); return(new AuthorityGroupDefinition[] { admins, technologists, users }); }