Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        //---------------------------------------------------------------
        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);
            }
        }
Ejemplo n.º 3
0
        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());
                }
            }
        }