Beispiel #1
0
        /// /////////////////////////////////////////////////////////
        public CRestrictionUtilisateurSurType GetRestriction(Type tp)
        {
            if (m_bIsAdministrateur)
            {
                return(new CRestrictionUtilisateurSurType(tp));
            }
            CRestrictionUtilisateurSurType rest = (CRestrictionUtilisateurSurType)m_tableRestrictions[tp];

            if (rest == null)
            {
                rest = new CRestrictionUtilisateurSurType(tp);
            }
            object[] attribs = tp.GetCustomAttributes(typeof(RestrictionHeriteeAttribute), true);
            CRestrictionUtilisateurSurType restClone = (CRestrictionUtilisateurSurType)rest.Clone();

            if (attribs != null && attribs.Length > 0)
            {
                Type newTp = tp.BaseType;
                if (tp != null)
                {
                    restClone.Combine(GetRestriction(newTp));
                }
            }
            if (SeuilAnnulationPriorites != null)
            {
                restClone.SurchageComplete = true;
                restClone.Priorite         = (int)SeuilAnnulationPriorites;
            }
            return(restClone);
        }
Beispiel #2
0
        /// /////////////////////////////////////////////////////////
        public void AddRestriction(CRestrictionUtilisateurSurType restriction)
        {
            if (restriction == null)
            {
                return;
            }
            Type tp = restriction.TypeAssocie;
            CRestrictionUtilisateurSurType resEx = GetRestriction(tp);

            if (SeuilAnnulationPriorites == null || resEx.Priorite >= (int)SeuilAnnulationPriorites)
            {
                if (resEx != null && resEx.HasRestrictions)
                {
                    m_tableRestrictions[tp] = CRestrictionUtilisateurSurType.Combine(resEx, restriction);
                }
                else
                {
                    m_tableRestrictions[tp] = (CRestrictionUtilisateurSurType)restriction.Clone();
                }
            }
        }
        /// ///////////////////////////////////////////
        public static CRestrictionUtilisateurSurType Combine(CRestrictionUtilisateurSurType restriction1, CRestrictionUtilisateurSurType restriction2)
        {
            CRestrictionUtilisateurSurType rest = null;

            if (restriction1 == null && restriction2 == null ||
                restriction1.TypeAssocie != restriction2.TypeAssocie)
            {
                return(null);
            }

            if (restriction1 == null)
            {
                return((CRestrictionUtilisateurSurType)restriction2.Clone());
            }
            if (restriction2 == null)
            {
                return((CRestrictionUtilisateurSurType)restriction1.Clone());
            }

            rest = (CRestrictionUtilisateurSurType)restriction1.Clone();
            rest.Combine(restriction2);
            return(rest);
        }