Пример #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);
            }
        }
Пример #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;
        }
Пример #3
0
        private void m_arbre_AfterCheck(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            if (!e.Node.Checked || m_elementADroits == null || m_bIsInitialising)
            {
                return;
            }

            // Utilistauer connecté
            CDonneesActeurUtilisateur userConnecte = null;
            CObjetDonnee objet = m_elementADroits as CObjetDonnee;

            if (objet != null)
            {
                userConnecte = CDonneesActeurUtilisateur.GetUserForSession(objet.ContexteDonnee.IdSession, objet.ContexteDonnee);
            }

            CDroitNode node = (CDroitNode)e.Node;

            if (userConnecte != null)
            {
                // Verifie que l'utilisateur tente d'affecter un droit qu'il n'a pas !
                if (userConnecte.GetDonneeDroit(node.Droit.Code) == null)
                {
                    node.Checked = false;
                    CFormAlerte.Afficher(I.T("You don't have right to affect this system Right : @1|10010", node.Droit.Libelle));
                    return;
                }
            }


            if (node.Relation == null)
            {
                CRelationElement_Droit relation = m_elementADroits.GetNewObjetRelationDroit();
                relation.Droit = (CDroitUtilisateur)node.Droit;
                relation.ElementDefinisseur = m_elementADroits;
                node.Relation = relation;
            }
            m_arbre.SelectedNode = node;
            if (node.Checked && !m_bLockEdition)
            {
                m_listeExtensions.Enabled = true;
                m_wndListeOptions.Enabled = true;
            }
            else
            {
                m_listeExtensions.Enabled = false;
                m_wndListeOptions.Enabled = false;
            }
        }
Пример #4
0
 /// //////////////////////////////////////////////////////
 private void AfficheDroitsElementDefinisseur()
 {
     m_bIsInitialising = true;
     ResetNodes(null);
     if (m_elementADroits == null)
     {
         m_bIsInitialising = false;
         return;
     }
     foreach (CRelationElement_Droit rel in m_elementADroits.RelationsDroits)
     {
         CDroitNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit);
         if (node != null)
         {
             node.Relation = rel;
             node.Checked  = true;
         }
     }
     m_bIsInitialising = false;
 }
Пример #5
0
        /// //////////////////////////////////////////////////////
        public CResultAErreur ValideModifs( )
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_arbre.Nodes.Count == 0)
            {
                return(result);
            }
            ValideModifsDroitEnCours();
            if (m_elementADroits == null)
            {
                return(result);
            }
            //Liste des relations à supprimer
            ArrayList listeToDelete = new ArrayList();

            foreach (CRelationElement_Droit rel in m_elementADroits.RelationsDroits)
            {
                TreeNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit);
                if (node == null || !node.Checked)
                {
                    listeToDelete.Add(rel);
                }
            }
            foreach (CRelationElement_Droit rel in listeToDelete)
            {
                CDroitNode node = GetNodeFor(m_arbre.Nodes, rel.CodeDroit);
                if (node != null)
                {
                    node.Relation = null;
                }
                result = rel.Delete();
                if (!result)
                {
                    return(result);
                }
            }


            return(result);
        }