示例#1
0
        //------------------------------------------------------------
        public CDbKey GetKeyUtilisateurFromId(int nId)
        {
            CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(CContexteDonneeSysteme.GetInstance());

            if (user.ReadIfExists(nId))
            {
                return(user.DbKey);
            }
            return(null);
        }
示例#2
0
        //------------------------------------------------------------
        public int GetIdUtilisateurFromKey(CDbKey key)
        {
            CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(CContexteDonneeSysteme.GetInstance());

            if (user.ReadIfExists(key))
            {
                return(user.Id);
            }
            return(-1);
        }
示例#3
0
        ////////////////////////////////////////////////
        public CRelationUtilisateur_Profil CreateNewRelationUtilisateur(CDonneesActeurUtilisateur user)
        {
            CRelationUtilisateur_Profil relation = new CRelationUtilisateur_Profil(user.ContexteDonnee);

            relation.CreateNewInCurrentContexte();
            relation.Profil      = this;
            relation.Utilisateur = user;
            foreach (CProfilUtilisateur_Inclusion inclusion in Inclusions)
            {
                inclusion.CreateNewRelationToRelation(relation);
            }
            return(relation);
        }
示例#4
0
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Complete les restrictions pour un objet donné
        /// </summary>
        /// <param name="restriction"></param>
        public static void CompleteRestriction(IElementAEO element, CRestrictionUtilisateurSurType restriction)
        {
            CRestrictionUtilisateurSurType restCache = CCacheRestrictions.GetRestriction(element);

            if (restCache != null)
            {
                restriction.Combine(restCache);
                return;
            }
            CContexteDonnee contexte = ((CObjetDonneeAIdNumerique)element).ContexteDonnee;
            CSessionClient  session  = CSessionClient.GetSessionForIdSession(contexte.IdSession);

            if (session != null)
            {
                //TESTDBKEYOK
                CDbKey keyUtilisateur          = session.GetInfoUtilisateur().KeyUtilisateur;
                CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte);
                if (user.ReadIfExists(keyUtilisateur))
                {
                    foreach (CRelationUtilisateur_Profil rel in user.RelationsProfils)
                    {
                        rel.CompleteRestriction(element, restriction);
                    }
                }
            }
            //Vérifie qu'on a le droit de voir l'élément
            try
            {
                if (!(element is CObjetDonneeAIdNumerique) ||
                    !((CObjetDonneeAIdNumerique)element).IsDeleted)
                {
                    if (!((CObjetDonnee)element).IsNew())//On ne peut pas appliquer la restriction sur un élément nouveau !
                    {
                        CListeObjetsDonnees lst = new CListeObjetsDonnees(element.ContexteDonnee, element.GetType());
                        lst.Filtre = new CFiltreData(element.GetChampId() + "=@1", element.Id);
                        lst.AppliquerFiltreAffichage = true;
                        lst.PreserveChanges          = true;
                        if (lst.Count == 0)
                        {
                            restriction.RestrictionUtilisateur = ERestriction.Hide;
                        }
                    }
                }
            }
            catch { }
            CCacheRestrictions.SetRestriction(element, restriction);
        }
示例#5
0
        public static CActeur UtilisateurActuel(CContexteDonnee ctx)
        {
            CSessionClient session = CSessionClient.GetSessionForIdSession(ctx.IdSession);

            if (session != null)
            {
                IInfoUtilisateur infoUser = session.GetInfoUtilisateur();
                if (infoUser != null)
                {
                    CDonneesActeurUtilisateur data = new CDonneesActeurUtilisateur(ctx);
                    //TESTDBKEYOK
                    if (data.ReadIfExists(infoUser.KeyUtilisateur))
                    {
                        return(data.Acteur);
                    }
                }
            }
            return(null);
        }
示例#6
0
        /// <summary>
        /// Calcule le filtre pour un utilisateur
        /// </summary>
        /// <param name="nIdUser"></param>
        /// <param name="contexte"></param>
        /// <returns></returns>
        private static string GetStringFiltreEOForUser(CDbKey keyUser, CContexteDonnee contexte, Type typeElements)
        {
            //TESTDBKEYOK
            if (keyUser == null)
            {
                return("");
            }
            string       strVersion  = contexte.IdVersionDeTravail == null ? "" : contexte.IdVersionDeTravail.ToString();
            string       strCleCache = keyUser.StringValue + "_" + strVersion + "_" + typeElements.ToString();
            CCacheFiltre cache       = (CCacheFiltre)m_tableIdUserEtTypeToFiltre[strCleCache];
            string       strFiltre   = "";

            if (cache == null || cache.IsObsolete)
            {
                strFiltre = "";
                CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte);
                if (user.ReadIfExists(keyUser))
                {
                    //Calcule le filtre
                    foreach (CRelationUtilisateur_Profil relUser in user.RelationsProfils)
                    {
                        string strTmp = relUser.GetFiltreEO(contexte.IdVersionDeTravail, typeElements);
                        if (strTmp != "")
                        {
                            strTmp = "(" + strTmp + ")";

                            if (strFiltre != "")
                            {
                                strFiltre += " or ";
                            }
                            strFiltre += strTmp;
                        }
                    }
                }
                m_tableIdUserEtTypeToFiltre[strCleCache] = new CCacheFiltre(strFiltre);
            }
            else
            {
                strFiltre = cache.Filtre;
            }
            return(strFiltre);
        }
示例#7
0
        /// ///////////////////////////////////////////
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            if (!(objetAppelle is CProcess))
            {
                return(null);
            }
            CProcess process = (CProcess)objetAppelle;

            if (process.ContexteExecution != null)
            {
                //TESTDBKEYOK
                CDbKey keyUtilisateur          = process.ContexteExecution.Branche.KeyUtilisateur;
                CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(process.ContexteExecution.ContexteDonnee);
                if (user.ReadIfExists(keyUtilisateur))
                {
                    return(user);
                }
            }
            return(null);
        }
示例#8
0
 //-------------------------------------------------------------------
 public static CDonneesActeurUtilisateur GetUserForSession(int nIdSession, CContexteDonnee contexte)
 {
     try
     {
         CSessionClient session = CSessionClient.GetSessionForIdSession(nIdSession);
         if (session == null)
         {
             return(null);
         }
         //TESTDBKEYOK
         CDbKey keyUtilisateur          = session.GetInfoUtilisateur().KeyUtilisateur;
         CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte);
         if (!user.ReadIfExists(keyUtilisateur))
         {
             return(null);
         }
         return(user);
     }
     catch
     {
     }
     return(null);
 }