Ejemplo n.º 1
0
        //-------------------------------------------------------------------
        public CResultAErreur AddRoleToActeurs(CRoleActeur role, CGroupeActeur groupe)
        {
            CResultAErreur      result       = CResultAErreur.True;
            CListeObjetsDonnees listeActeurs = new CListeObjetsDonnees(groupe.ContexteDonnee, typeof(CActeur));
            //Sélectionne tous les acteurs du groupe qui n'ont pas le rôle
            CFiltreDataAvance filtre = new CFiltreDataAvance(CActeur.c_nomTable,
                                                             "(RelationsGroupes.GroupeActeur.Id = @1 or " +
                                                             "RelationsGroupes.GroupeActeur.RelationsTousGroupesContenants.GroupeActeurContenant.Id = @1) and " +
                                                             "hasno ( " + role.NomTableDonneesActeur + ".Id)",
                                                             groupe.Id);

            listeActeurs.Filtre = filtre;
            foreach (CActeur acteur in listeActeurs)
            {
#if PDA
                CDonneesActeur donnee = (CDonneesActeur)Activator.CreateInstance(role.TypeDonneeActeur);
                donnee.ContexteDonnee = groupe.ContexteDonnee;
#else
                CDonneesActeur donnee = (CDonneesActeur)Activator.CreateInstance(role.TypeDonneeActeur, new object[] { groupe.ContexteDonnee });
#endif
                donnee.CreateNewInCurrentContexte();
                donnee.Acteur = acteur;

                donnee.IsDonneeActeurValide = donnee.VerifieDonnees(false);
            }
            return(result);
        }
        /// ///////////////////////////////////////////
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            CEtapeWorkflow etape = objetAppelle as CEtapeWorkflow;

            if (etape == null || parametres.Length > 0)
            {
                return(null);
            }

            List <CActeur>           listeActeurs     = new List <CActeur>();
            List <IAffectableAEtape> listeAffectables = new List <IAffectableAEtape>(etape.Assignments);

            foreach (IAffectableAEtape affectable in listeAffectables)
            {
                CActeur acteur = affectable as CActeur;
                if (acteur != null)
                {
                    listeActeurs.Add(acteur);
                }
                else
                {
                    CGroupeActeur groupe = affectable as CGroupeActeur;
                    if (groupe != null)
                    {
                        foreach (CRelationActeur_GroupeActeur relation in groupe.RelationsActeur)
                        {
                            listeActeurs.Add(relation.Acteur);
                        }
                    }
                    else
                    {
                        CProfilUtilisateur profil = affectable as CProfilUtilisateur;
                        if (profil != null)
                        {
                            CListeObjetDonneeGenerique <CActeur> lstActeursDansProfil =
                                new CListeObjetDonneeGenerique <CActeur>(etape.ContexteDonnee);
                            lstActeursDansProfil.Filtre = new CFiltreDataAvance(
                                CActeur.c_nomTable,
                                CDonneesActeurUtilisateur.c_nomTable + "." +
                                CRelationUtilisateur_Profil.c_nomTable + "." +
                                CProfilUtilisateur.c_nomTable + "." +
                                CProfilUtilisateur.c_champId + " = @1",
                                profil.Id);
                            foreach (CActeur acteurProfil in lstActeursDansProfil)
                            {
                                listeActeurs.Add(acteurProfil);
                            }
                        }
                    }
                }
            }

            return(listeActeurs.ToArray());
        }
        //----------------------------------------------------------------
        private void AddNodeGroupe(CGroupeActeur groupe, TreeNodeCollection nodes)
        {
            TreeNode node = new TreeNode(groupe.Nom);

            node.Tag = groupe;
            nodes.Add(node);
            foreach (CRelationGroupeActeurNecessite rel in groupe.RelationsGroupesNecessitants)
            {
                AddNodeGroupe(rel.GroupeActeurNecessitant, node.Nodes);
            }
        }
Ejemplo n.º 4
0
        //-------------------------------------------------------------------
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CGroupeActeur groupe = (CGroupeActeur)objet;

                if (groupe.Nom == "")
                {
                    result.EmpileErreur(I.T("Member Group name cannot be empty|273"));
                }

                if (!CObjetDonneeAIdNumerique.IsUnique(groupe, CGroupeActeur.c_champNom, groupe.Nom))
                {
                    result.EmpileErreur(I.T("Member Group name already exists|274"));
                }

                if (groupe.IdGroupeAd != "")
                {
                    if (!CObjetDonneeAIdNumerique.IsUnique(groupe, CGroupeActeur.c_champGroupeWindowsCorrespondant, groupe.IdGroupeAd))
                    {
                        result.EmpileErreur(I.T("Another Member Group is already associated with this AD Group|275"));
                    }
                }

                int[] nIdsGroupesContenus  = groupe.GetHierarchieGroupesContenus();
                int[] nIdsGroupeContenants = groupe.GetHierarchieGroupesContenants();
                foreach (int i in nIdsGroupeContenants)
                {
                    foreach (int j in nIdsGroupesContenus)
                    {
                        if (i == j && i != groupe.Id && j != groupe.Id)
                        {
                            result.EmpileErreur(I.T("Incorrect Group hierarchy|276"));
                        }
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
Ejemplo n.º 5
0
        protected bool CreateOrUpdateRelations(CGroupeActeur groupe, CAdGroup adGroupe, Hashtable tableElementsASupprimer, Hashtable tableEmpecheRecursInf)
        {
            if (tableEmpecheRecursInf[adGroupe.Id] != null)
            {
                return(false);
            }
            tableEmpecheRecursInf[adGroupe.Id] = true;
            //Trouve le groupe correspondant au groupe AD
            CGroupeActeur groupeCorrespondant = CGroupeActeur.FromAd(groupe.ContexteDonnee, adGroupe.Id);

            if (groupeCorrespondant == null)
            {
                foreach (CAdGroup adParent in adGroupe.GroupesParents)
                {
                    if (CreateOrUpdateRelations(groupe, adParent, tableElementsASupprimer, tableEmpecheRecursInf))
                    {
                        return(true);
                    }
                }
            }
            else
            {
                //Le groupe correspondant existe. Existe-t-il la relation ?
                CListeObjetsDonnees liste = groupe.RelationsGroupesContenantsDirects;
                liste.Filtre = new CFiltreData(CRelationGroupeActeur_GroupeActeur.c_champIdGroupeContenant + "=@1", groupeCorrespondant.Id);
                if (liste.Count == 1)
                {
                    CRelationGroupeActeur_GroupeActeur rel = (CRelationGroupeActeur_GroupeActeur)liste[0];
                    tableElementsASupprimer.Remove(rel);                    //On ne supprime pas
                }
                else
                {
                    //Crée la relation
                    CRelationGroupeActeur_GroupeActeur rel = new CRelationGroupeActeur_GroupeActeur(groupe.ContexteDonnee);
                    rel.CreateNewInCurrentContexte();
                    rel.GroupeContenant = groupeCorrespondant;
                    rel.GroupeContenu   = groupe;
                }
                return(true);
            }
            return(false);
        }
 //----------------------------------------------------------------
 private void CheckNode(CGroupeActeur groupe, TreeNodeCollection nodes)
 {
     foreach (TreeNode node in nodes)
     {
         if (node.Tag.Equals(groupe))
         {
             node.Checked = true;
             TreeNode parent = node.Parent;
             while (parent != null)
             {
                 parent.Expand();
                 parent = parent.Parent;
             }
         }
         else
         {
             node.Checked = false;
         }
         CheckNode(groupe, node.Nodes);
     }
 }
        /// ///////////////////////////////////////////
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            CEtapeWorkflow etape = objetAppelle as CEtapeWorkflow;

            if (etape == null || parametres.Length > 0)
            {
                return(null);
            }

            List <CGroupeActeur>     listeGroupes     = new List <CGroupeActeur>();
            List <IAffectableAEtape> listeAffectables = new List <IAffectableAEtape>(etape.Assignments);

            foreach (IAffectableAEtape affectable in listeAffectables)
            {
                CGroupeActeur groupe = affectable as CGroupeActeur;
                if (groupe != null)
                {
                    listeGroupes.Add(groupe);
                }
            }

            return(listeGroupes.ToArray());
        }
Ejemplo n.º 8
0
 //-------------------------------------------------------------------------
 public CFormEditionGroupeActeurs(CGroupeActeur groupe, CListeObjetsDonnees liste)
     : base(groupe, liste)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
Ejemplo n.º 9
0
        /// ////////////////////////////////////////////////////////////////////
        public CResultAErreur SerializeFiltre(C2iSerializer serializer)
        {
            int            nVersion = GetNumVersion();
            CResultAErreur result   = serializer.TraiteVersion(ref nVersion);

            if (!result)
            {
                return(result);
            }

            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                InitCombos();
            }

            string strText = m_txtNom.Text;

            serializer.TraiteString(ref strText);
            m_txtNom.Text = strText;

            strText = m_txtCodePostal.Text;
            serializer.TraiteString(ref strText);
            m_txtCodePostal.Text = strText;

            strText = m_txtVille.Text;
            serializer.TraiteString(ref strText);
            m_txtVille.Text = strText;

            string strCodeRole = "";

            if (m_cmbRoles.SelectedValue is CRoleActeur)
            {
                strCodeRole = ((CRoleActeur)m_cmbRoles.SelectedValue).CodeRole;
            }
            serializer.TraiteString(ref strCodeRole);
            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                m_cmbRoles.SelectedValue = CRoleActeur.GetRole(strCodeRole);
            }

            int nIdGroupe = -1;

            if (m_cmbGroupes.SelectedValue is CGroupeActeur)
            {
                nIdGroupe = ((CGroupeActeur)m_cmbGroupes.SelectedValue).Id;
            }
            serializer.TraiteInt(ref nIdGroupe);
            if (serializer.Mode == ModeSerialisation.Lecture)
            {
                if (nIdGroupe >= 0)
                {
                    CGroupeActeur groupe = new CGroupeActeur(CSc2iWin32DataClient.ContexteCourant);
                    if (groupe.ReadIfExists(nIdGroupe))
                    {
                        m_cmbGroupes.SelectedValue = groupe;
                    }
                }
            }



            return(result);
        }