//------------------------------------------------------------ public CDbKey GetKeyUtilisateurFromId(int nId) { CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(CContexteDonneeSysteme.GetInstance()); if (user.ReadIfExists(nId)) { return(user.DbKey); } return(null); }
//------------------------------------------------------------ public int GetIdUtilisateurFromKey(CDbKey key) { CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(CContexteDonneeSysteme.GetInstance()); if (user.ReadIfExists(key)) { return(user.Id); } return(-1); }
//////////////////////////////////////////////// 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); }
//-------------------------------------------------------------------------------- /// <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); }
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); }
/// <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); }
/// /////////////////////////////////////////// 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); }
//------------------------------------------------------------------- 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); }