/// <summary> /// Ajoute aux restrictions définies par des attributs les restrictions liées /// aux classes qui ne sont pas dans timos (ex : les champs custom) /// </summary> /// <param name="modulesApplicatifs"></param> private static void CompleteRestrictionsApp(CConfigModulesTimos configModules, CListeRestrictionsUtilisateurSurType listeRestrictions) { //Autoriser ou non les versions //Module journalisation ou ingénierie référentiel if (configModules.GetModuleApp(CConfigModulesTimos.c_appModule_IngeReferentiel_ID) == null && configModules.GetModuleApp(CConfigModulesTimos.c_appModule_Journalisation_ID) == null) { //Pas le droit de versions CRestrictionUtilisateurSurType restriction = new CRestrictionUtilisateurSurType(typeof(CVersionDonnees), ERestriction.Hide); listeRestrictions.AddRestriction(restriction); //et version objet restriction = new CRestrictionUtilisateurSurType(typeof(CVersionDonneesObjet), ERestriction.Hide); listeRestrictions.AddRestriction(restriction); //et version objet opération restriction = new CRestrictionUtilisateurSurType(typeof(CVersionDonneesObjetOperation), ERestriction.Hide); listeRestrictions.AddRestriction(restriction); } CompleteRestrictionsAppWorkflows(configModules, listeRestrictions); }
public static CListeRestrictionsUtilisateurSurType GetRestrictionsApp(CConfigModulesTimos configModules) { CListeRestrictionsUtilisateurSurType liste = new CListeRestrictionsUtilisateurSurType(); if (configModules == null) { return(liste); } List <Type> tps = new List <Type>(CContexteDonnee.GetAllTypes()); if (tps.Count == 0) { throw new Exception("No type loaded for licences"); } foreach (Type tp in tps) { object[] atts = tp.GetCustomAttributes(typeof(AModulesApp), false); if (atts.Length == 1) { AModulesApp att = (AModulesApp)atts[0]; List <CLicenceModuleAppPrtct> modulesDuType = new List <CLicenceModuleAppPrtct>(); foreach (string strIdModule in att.IdsModulesApplicatif) { CLicenceModuleAppPrtct modulePresent = configModules.GetModuleApp(strIdModule); if (modulePresent != null) { modulesDuType.Add(modulePresent); } } if (modulesDuType.Count == 0) { CRestrictionUtilisateurSurType restriction = new CRestrictionUtilisateurSurType(tp, ERestriction.Hide); liste.AddRestriction(restriction); } else { CRestrictionUtilisateurSurType restriction = new CRestrictionUtilisateurSurType(tp); foreach (CLicenceModuleAppPrtct module in modulesDuType) { CRestrictionUtilisateurSurType restric = new CRestrictionUtilisateurSurType(tp); restric.RestrictionSysteme = module.Restriction; restriction.Combine(restric); } liste.AddRestriction(restriction); } } } CompleteRestrictionsApp(configModules, liste); return(liste); }
//--------------------------------------------------------------- private static void CompleteRestrictionsAppWorkflows(CConfigModulesTimos configModules, CListeRestrictionsUtilisateurSurType listeRestrictions) { CLicenceModuleAppPrtct moduleAppWorkflow = configModules.GetModuleApp(CConfigModulesTimos.c_appModuleWorkflow); ERestriction rest = ERestriction.Hide; if (moduleAppWorkflow != null) { rest = moduleAppWorkflow.Restriction; } if (rest != ERestriction.Aucune) { CRestrictionUtilisateurSurType restriction = new CRestrictionUtilisateurSurType(typeof(CTypeWorkflow), rest); listeRestrictions.AddRestriction(restriction); restriction = new CRestrictionUtilisateurSurType(typeof(CWorkflow), rest); listeRestrictions.AddRestriction(restriction); restriction = new CRestrictionUtilisateurSurType(typeof(CTypeEtapeWorkflow), rest); listeRestrictions.AddRestriction(restriction); restriction = new CRestrictionUtilisateurSurType(typeof(CEtapeWorkflow), rest); listeRestrictions.AddRestriction(restriction); } }
public void AppliquerConfiguration(CConfigModulesTimos configuration) { if (!DesignMode && configuration != null) { if (LancementApplication != null) { EventArgConfigureControl arg = new EventArgConfigureControl(); LancementApplication(arg); if (arg.Cancel) { if (FinApplication != null) { FinApplication(this, new EventArgs()); } return; } } ClearSurveillance(); foreach (Control ctrl in m_associations.Keys) { string association = m_associations[ctrl]; if (association == null || association == "") { continue; } #region Recuperation de la restriction a Appliquer ERestriction restriction = ERestriction.Aucune; //Combinaison des restrictions List <string> strIdsModulesApp = CSerializerModulesLicence.GetIdsModulesApp(association); bool bFind = strIdsModulesApp.Count == 0; foreach (string strIdApp in strIdsModulesApp) { CLicenceModuleAppPrtct mApp = configuration.GetModuleApp(strIdApp); if (mApp != null) { restriction = restriction | mApp.Restriction; bFind = true; if (restriction == ERestriction.Hide) { break; } } } if (bFind && restriction != ERestriction.Hide) { List <string> strIdsModulesClient = CSerializerModulesLicence.GetIdsModulesClient(association); bFind = strIdsModulesClient.Count == 0; foreach (string strId in strIdsModulesClient) { CLicenceModuleClientPrtct mCli = configuration.GetModuleClient(strId); if (mCli != null) { restriction = restriction | mCli.Restriction; bFind = true; if (restriction == ERestriction.Hide) { break; } } } } if (!bFind) { restriction = ERestriction.Hide; } #endregion if (ApplicationConfiguration != null) { EventArgConfigureControl arg = new EventArgConfigureControl(); ApplicationConfiguration(ctrl, restriction, arg); if (arg.Cancel) { return; } } #region Affectation du controle et mise sous surveillance switch (restriction) { case ERestriction.Hide: ctrl.Visible = false; if (ctrl is Crownwood.Magic.Controls.TabPage) { DetacheC2iTabPage((Crownwood.Magic.Controls.TabPage)ctrl); AjouterControleParentChangedNonAutorise(ctrl); } else if (ctrl is TabPage) { TabPage tbp = (TabPage)ctrl; //if (tbp.Parent != null && tbp.Parent is TabControl) //{ // AjouterControleAddedNonAutorise(tbp.Parent); // tbp.Parent = null; //} tbp.Parent = null; AjouterControleParentChangedNonAutorise(tbp); } AjouterControleVisibleChangedNonAutorise(ctrl); break; case ERestriction.ReadOnly: if (typeof(IControlALockEdition).IsAssignableFrom(ctrl.GetType())) { IControlALockEdition ctrlALock = (IControlALockEdition)ctrl; ctrlALock.LockEdition = true; AjouterControleLockEditionChangedNonAutorise(ctrlALock); } else { ctrl.Enabled = false; AjouterControleEnableChangedNonAutorise(ctrl); } break; case ERestriction.NoCreate: break; case ERestriction.NoDelete: break; case ERestriction.NoCreate | ERestriction.NoDelete: case ERestriction.Aucune: default: break; } #endregion } if (FinApplication != null) { FinApplication(this, new EventArgs()); } } }