/// /////////////////////////////////////////////////////////////// public CDonneeDroitForUser GetDonneeDroit(int nIdDonneActeurUtilisateur, string strCode) { CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(m_contexteCache); user.Id = nIdDonneActeurUtilisateur; CDroitUtilisateur droit = new CDroitUtilisateur(m_contexteCache); droit.PointeSurLigne(strCode); string strListeCodes = "'" + strCode + "'"; while (droit.DroitParent != null) { strListeCodes += ",'" + droit.DroitParent.Code + "'"; droit = droit.DroitParent; } //Recherche les relations de droit de cet utilisateur /*CFiltreData filtre = new CFiltreData ( CDonneesActeurUtilisateur.c_champId+"=@1 and "+ * CDroitUtilisateur.c_champCode+" in ("+strListeCodes+")"); * filtre.Parametres.Add ( nIdDonneActeurUtilisateur );*/ CListeObjetsDonnees liste = user.GetDependancesListe(CRelationActeurUtilisateur_Droit.c_nomTable, CDonneesActeurUtilisateur.c_champId); liste.Filtre = new CFiltreData(CDroitUtilisateur.c_champCode + " in (" + strListeCodes + ")"); //CListeObjetsDonnees liste = new CListeObjetsDonnees(m_contexteCache, typeof(CRelationActeurUtilisateur_Droit)); //liste.Filtre = filtre; CDonneeDroitForUser donneeRetour = null; if (liste.Count > 0) { donneeRetour = new CDonneeDroitForUser(strCode, OptionsDroit.Aucune); foreach (CRelationActeurUtilisateur_Droit rel in liste) { donneeRetour.CombineOptions(rel.Options); CObjetDonneeAIdNumerique[] listeOptions = rel.ListeObjetsOption; if (listeOptions != null) { foreach (CObjetDonnee obj in rel.ListeObjetsOption) { donneeRetour.AddObjetDonneeOption(obj); } } } } ///RECHERCHE DANS LES GROUPES DE L'utilisateur string strGroupes = ""; foreach (CGroupeActeur groupe in user.Acteur.TousLesGroupes()) //user.Acteur.HierarchieGroupes) { strGroupes += groupe.Id.ToString() + ","; } if (strGroupes.Length == 0) { return(donneeRetour); } strGroupes = strGroupes.Substring(0, strGroupes.Length - 1); CFiltreData filtre; filtre = new CFiltreData( CGroupeActeur.c_champId + " in (" + strGroupes + ") and " + CDroitUtilisateur.c_champCode + " in (" + strListeCodes + ")"); /*liste = new CListeObjetsDonnees(m_contexteCache, typeof(CRelationGroupe_Droit)); * liste.Filtre = filtre; * if ( liste.Count > 0 ) * { * if ( donneeRetour == null ) * donneeRetour = new CDonneeDroitForUser ( strCode, OptionsDroit.Aucune ); * foreach ( CRelationGroupe_Droit rel in liste ) * { * donneeRetour.CombineOptions ( rel.Options ); * CObjetDonneeAIdNumeriqueAuto[] listeOptions = rel.ListeObjetsOption; * if ( listeOptions != null ) * foreach ( CObjetDonnee obj in rel.ListeObjetsOption ) * donneeRetour.AddObjetDonneeOption( obj ); * } * }*/ return(donneeRetour); }