Ejemplo n.º 1
0
        /// //////////////////////////////////////////////////////
        private void FillNode(TreeNodeCollection nodes, CDroitUtilisateur droitParent)
        {
            if (DesignMode)
            {
                return;
            }
            CListeObjetsDonnees lst    = new CListeObjetsDonnees(sc2i.win32.data.CSc2iWin32DataClient.ContexteCourant, typeof(CDroitUtilisateur));
            CFiltreData         filtre = new CFiltreData();

            if (droitParent == null)
            {
                filtre.Filtre = CDroitUtilisateur.c_champCodeDroitParent + " is null";
            }
            else
            {
                filtre.Filtre = CDroitUtilisateur.c_champCodeDroitParent + "=@1";
                filtre.Parametres.Add(droitParent.Code);
            }
            lst.Filtre = filtre;
            lst.Tri    = CDroitUtilisateur.c_champNumOrdre;
            foreach (CDroitUtilisateur droit in lst)
            {
                CDroitNode node = new CDroitNode(droit);

                nodes.Add(node);
                m_tableCodeToNode[droit.Code] = node;
                FillNode(node.Nodes, droit);
            }
        }
Ejemplo n.º 2
0
        /// //////////////////////////////////////////////////////
        private void m_arbre_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            ValideModifsDroitEnCours();
            CDroitNode        node  = (CDroitNode)e.Node;
            CDroitUtilisateur droit = node.Droit;

            m_listeExtensions.Visible = droit.TypeAssocieURI != null && droit.TypeAssocieURI != "";
            m_labelInfo.Text          = droit.Infos;
            OptionsDroit[] options = droit.ListeOptionsPossibles;
            m_wndListeOptions.Items.Clear();
            if (options.Length == 0)
            {
                m_wndListeOptions.Visible = false;
            }
            else
            {
                foreach (OptionsDroit option in options)
                {
                    int nItem = m_wndListeOptions.Items.Add(new COptionDroitUtilisateur(option));
                    if (node.Relation != null)
                    {
                        m_wndListeOptions.SetItemChecked(nItem, node.Relation.HasOption(option));
                    }
                }
                m_wndListeOptions.Visible = true;
            }
            if (droit.TypeAssocieURI != null)
            {
                CListeObjetsDonnees lst = droit.ListeObjetsAssocies;
                m_listeExtensions.Remplir(lst);
                if (node.Relation != null)
                {
                    //Coche ce qui doit l'être
                    Hashtable tableCheck = new Hashtable();
                    foreach (CObjetDonnee obj in node.Relation.ListeObjetsOption)
                    {
                        tableCheck[obj] = true;
                    }
                    foreach (ListViewItem item in m_listeExtensions.Items)
                    {
                        if (tableCheck[item.Tag] != null)
                        {
                            item.Checked = true;
                        }
                    }
                }
            }
            if (e.Node.Checked && !m_bLockEdition)
            {
                m_listeExtensions.Enabled = true;
                m_wndListeOptions.Enabled = true;
            }
            else
            {
                m_listeExtensions.Enabled = false;
                m_wndListeOptions.Enabled = false;
            }
            m_lastNodeAffiche = (CDroitNode)e.Node;
        }
Ejemplo n.º 3
0
        /// ////////////////////////////////////////////////
        public static void RegisterDroit(
            string strCode,
            string strLibelle,
            int nNumOrdre,
            string strDroitParent,
            string strInfoSurDroit,
            OptionsDroit nOptionsPossibles,
            Type typeObjetAssocie
            )
        {
#if !PDA_DATA
            AssureStructure();
            CDroitUtilisateur droit = new CDroitUtilisateur(m_datasetDroits);
            if (!droit.ReadIfExists(new object[] { strCode }))
            {
                droit.CreateNewInCurrentContexte(new Object[] { strCode });
            }
            droit.Libelle  = strLibelle;
            droit.NumOrdre = nNumOrdre;
            droit.Infos    = strInfoSurDroit;
            CDroitUtilisateur droitParent = null;
            if (strDroitParent != null && strDroitParent.Trim() != "")
            {
                droitParent = new CDroitUtilisateur(m_datasetDroits);
                if (!droitParent.ReadIfExists(new Object[] { strDroitParent }))
                {
                    //Création du droit parent simple, il pourra être modifié par une autre définition
                    droitParent.CreateNewInCurrentContexte(new object[] { strDroitParent });
                    droitParent.Libelle  = strDroitParent;
                    droitParent.NumOrdre = 0;
                }
            }
            droit.DroitParent = droitParent;
            if (typeObjetAssocie == null)
            {
                droit.TypeAssocieURI = null;
            }
            else
            {
                droit.TypeAssocieURI = typeObjetAssocie.ToString();
            }
            droit.OptionsPossibles = nOptionsPossibles;
#endif
        }
Ejemplo n.º 4
0
        /// ///////////////////////////////////////////////////////////////
        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);
        }
Ejemplo n.º 5
0
 public CDroitNode(CDroitUtilisateur droit)
     : base(droit.Libelle)
 {
     Droit      = droit;
     m_relation = null;
 }