コード例 #1
0
        //------------------------------------------------------
        static void racine_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Alt && e.Shift && e.KeyCode == Keys.F7)
            {
                CSessionClient   session = CSessionClient.GetSessionUnique();
                IInfoUtilisateur info    = session != null?session.GetInfoUtilisateur() : null;

                if (info != null)
                {
                    if (info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitInterface) != null)
                    {
                        CSetupVisibiliteControles setup = new CSetupVisibiliteControles();
                        Control ctrl = sender as Control;
                        if (ctrl != null)
                        {
                            Form frm = ctrl.FindForm();
                            if (frm != null)
                            {
                                setup = GetSetupForWindow(session, frm);
                                CFormSetupFenetreDynamique.ShowArbre(frm, setup);
                                SetSetupForWindow(session, frm, setup);
                                setup.Apply(frm, false);
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        //------------------------------------------------------
        public static void AppliqueToForm(Form racine)
        {
            if (racine == null)
            {
                return;
            }
            racine.KeyPreview = true;
            racine.KeyDown   -= m_handlerKey;

            CSessionClient   session = CSessionClient.GetSessionUnique();
            IInfoUtilisateur info    = session != null?session.GetInfoUtilisateur() : null;

            bool bIsAdmin = false;

            if (info != null)
            {
                if (info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitInterface) != null)
                {
                    bIsAdmin        = true;
                    racine.KeyDown += m_handlerKey;
                }
            }
            CSetupVisibiliteControles setup = GetSetupForWindow(session, racine);

            if (setup != null && (
                    !bIsAdmin ||
                    (GetKeyState(0x10) & 0xF000) != 0xF000 || //SHIFT
                    (GetKeyState(0x12) & 0xF000) != 0xF000))  //ALT
            {
                setup.Apply(racine, false);
            }
        }
コード例 #3
0
        //------------------------------------------------------------
        public CResultAErreur PurgeEntites(Type typeObjets, int[] lstIds)
        {
            CResultAErreur   result  = CResultAErreur.True;
            CSessionClient   session = CSessionClient.GetSessionForIdSession(IdSession);
            IInfoUtilisateur info    = session != null?session.GetInfoUtilisateur() : null;

            if (info == null)
            {
                result.EmpileErreur(I.T("Invalid session in Purge entities|20014"));
                return(result);
            }
            if (info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministrationSysteme) == null)
            {
                result.EmpileErreur(I.T("Purge entity is allowed to administrators only|20015"));
                return(result);
            }
            result = session.BeginTrans();
            if (!result)
            {
                return(result);
            }
            CDonneeNotificationModificationContexteDonnee dataModif = new CDonneeNotificationModificationContexteDonnee(IdSession);

            result = PurgeEntites(typeObjets, lstIds, dataModif);
            if (result)
            {
                CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { dataModif });
                result = session.CommitTrans();
            }
            else
            {
                session.RollbackTrans();
            }
            return(result);
        }
コード例 #4
0
        public static bool UtilisateurConnecteIsUserManager(CContexteDonnee ctx)
        {
            IDonneeDroitUtilisateur data    = null;
            CSessionClient          session = CSessionClient.GetSessionForIdSession(ctx.IdSession);

            if (session != null)
            {
                IInfoUtilisateur infoUser = session.GetInfoUtilisateur();
                if (infoUser != null)
                {
                    data = infoUser.GetDonneeDroit(CDroitDeBase.c_droitBaseGestionUtilisateurs);
                }
            }
            return(data != null);
        }
コード例 #5
0
        public static void AddToMenuParent(ToolStripMenuItem menu, string strContexte, object objet)
        {
            if (objet == null)
            {
                return;
            }

            CModeleTexte modeleSel = CTimosAppRegistre.GetModeleTexteForType(strContexte, objet.GetType());

            CListeObjetsDonnees liste = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, typeof(CModeleTexte));

            liste.Filtre = new CFiltreData(CModeleTexte.c_champTypeAssocie + "=@1",
                                           objet.GetType().ToString());
            foreach (CModeleTexte modele in liste)
            {
                CMenuModeleTexte menuModele = new CMenuModeleTexte(modele, strContexte, objet);
                if (modeleSel != null && modele.Id == modeleSel.Id)
                {
                    menuModele.Checked = true;
                }
                menuModele.MouseUp += new MouseEventHandler(menuModele.menuModele_MouseUp);
                menu.DropDownItems.Add(menuModele);
            }

            CSessionClient session = CSessionClient.GetSessionForIdSession(CSc2iWin32DataClient.ContexteCourant.IdSession);

            if (session != null)
            {
                IInfoUtilisateur info = session.GetInfoUtilisateur();
                if (info != null && info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministration) != null)
                {
                    menu.DropDownItems.Add(new ToolStripSeparator());
                    CMenuModeleTexte menuModeleAdd = new CMenuModeleTexte(null, strContexte, objet);
                    menuModeleAdd.Text   = I.T("Add|124");
                    menuModeleAdd.Click += new EventHandler(menuModeleAdd.itemAddMenu_Click);
                    menu.DropDownItems.Add(menuModeleAdd);
                }
            }

            if (menu.DropDownItems.Count == 0)
            {
                menu.Visible = false;
            }
        }
コード例 #6
0
        //------------------------------------------------------
        public void InitForObjet(CObjetDonneeAIdNumerique objet, CVersionDonnees version)
        {
            CSessionClient   session = CSessionClient.GetSessionForIdSession(objet.ContexteDonnee.IdSession);
            IInfoUtilisateur info    = session.GetInfoUtilisateur();

            if (info != null)
            {
                m_bCanRestore = info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministration) != null;
            }
            m_bCanRestore         &= version != null && version.TypeVersion.Code == CTypeVersion.TypeVersion.Archive;
            m_panelRestore.Visible = m_bCanRestore;

            if (m_contexteDonnees != null)
            {
                m_contexteDonnees.Dispose();
            }
            m_tableValeurs.Clear();
            m_objetDepart = null;
            m_version     = null;
            m_arbreObjet.Nodes.Clear();
            if (objet == null || version == null)
            {
                return;
            }
            m_contexteDonnees = new CContexteDonnee(objet.ContexteDonnee.IdSession, true, false);
            m_contexteDonnees.SetVersionDeTravail(-1, false);            //Travaille sur toutes les versions
            m_objetDepart = (CObjetDonneeAIdNumerique)m_contexteDonnees.GetObjetInThisContexte(objet);
            m_version     = (CVersionDonnees)m_contexteDonnees.GetObjetInThisContexte(version);

            List <int> lstIds = new List <int>();

            if (m_version.TypeVersion.Code == CTypeVersion.TypeVersion.Previsionnelle)
            {
                CVersionDonnees verTmp = m_version.VersionParente;
                while (verTmp != null)
                {
                    lstIds.Add(verTmp.Id);
                    verTmp = verTmp.VersionParente;
                }
            }
            m_nIdsVersionsSuccessives = lstIds.ToArray();

            CreateNodeObjet(m_arbreObjet.Nodes, m_objetDepart);
        }
コード例 #7
0
 public static IDonneeDroitUtilisateur GetDonneeDroitForSession(int nIdSession, string strCodeDroit)
 {
     try
     {
         CSessionClient session = CSessionClient.GetSessionForIdSession(nIdSession);
         if (session == null)
         {
             return(null);
         }
         IInfoUtilisateur info = session.GetInfoUtilisateur();
         if (info == null)
         {
             return(null);
         }
         return(info.GetDonneeDroit(strCodeDroit));
     }
     catch
     {
     }
     return(null);
 }
コード例 #8
0
        //------------------------------------
        public CResultAErreur Importer(string strFichier, CContexteDonnee contexteDestination)
        {
            CResultAErreur result = m_parametre.LectureFichier(strFichier);

            m_nNbUpdated = 0;
            m_nNbCreated = 0;

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

            if (m_bChargerTouteLaCible)
            {
                CListeObjetsDonnees lst = new CListeObjetsDonnees(contexteDestination, m_typeCible);
                lst.AssureLectureFaite();
            }

            //Vérifie que l'utilisateur a le droit de faire un import
            CSessionClient session   = CSessionClient.GetSessionForIdSession(contexteDestination.IdSession);
            bool           bALeDroit = false;

            if (session != null)
            {
                IInfoUtilisateur info = session.GetInfoUtilisateur();
                if (info != null)
                {
                    bALeDroit = info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitImport) != null;
                }
            }

            if (!bALeDroit)
            {
                result.EmpileErreur(I.T("Your are not allowed to import data|20048"));
                return(result);
            }

            DataTable table = result.Data as DataTable;

            if (table == null)
            {
                result.EmpileErreur(I.T("Import error, can not read source data|20043"));
                return(result);
            }
            int    nParametre = 1;
            string strFiltre  = "";

            foreach (CMappageChampImport mappage in Mappages)
            {
                if (mappage.IsCle)
                {
                    result = mappage.GetFiltreCle(m_typeCible, nParametre);
                    if (!result)
                    {
                        return(result);
                    }
                    nParametre++;
                    strFiltre += result.Data.ToString() + " and ";
                }
            }
            CFiltreData filtreCle = null;

            if (strFiltre.Length > 0)
            {
                filtreCle = new CFiltreData(strFiltre.Substring(0, strFiltre.Length - 5));
            }
            foreach (DataRow row in table.Rows)
            {
                result = ImporteRow(row, filtreCle, contexteDestination);
                if (!result)
                {
                    return(result);
                }
            }
            return(result);
        }
コード例 #9
0
        //--------------------------------------------------------------------------------
        /// <summary>
        /// Complete les restrictions pour un objet donné
        /// </summary>
        /// <param name="restriction"></param>
        public static void CompleteRestriction(IElementARestrictionsSpecifiques element, CRestrictionUtilisateurSurType restriction)
        {
            List <CRelationElement_RestrictionSpecifique> lst = GetRelationsRestrictions(element);

            if (lst.Count == 0)
            {
                return;
            }

            CContexteDonnee  contexte = element.ContexteDonnee;
            CSessionClient   session  = CSessionClient.GetSessionForIdSession(contexte.IdSession);
            IInfoUtilisateur info     = null;
            //TESTDBKEYTODO
            CDbKey keyUtilisateur = null;

            if (session != null)
            {
                info = session.GetInfoUtilisateur();
                if (info == null)
                {
                    return;
                }
                if (info.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministration) != null)
                {
                    return;
                }
                keyUtilisateur = info.KeyUtilisateur;
            }

            //Application des restrictions qui s'appliquent à tout le monde
            foreach (CRelationElement_RestrictionSpecifique rel in lst.ToArray())
            {
                if (rel.Applications.Count == 0)
                {
                    CListeRestrictionsUtilisateurSurType liste  = rel.GroupeRestriction.ListeRestrictions;
                    CRestrictionUtilisateurSurType       resTmp = liste.GetRestriction(element.GetType());
                    restriction.Combine(resTmp);
                    lst.Remove(rel);
                }
            }
            if (lst == null || lst.Count == 0 || info == null)
            {
                return;
            }


            CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(contexte);

            if (user.ReadIfExists(keyUtilisateur))
            {
                CActeur acteur = user.Acteur;
                while (acteur != null)
                {
                    foreach (CRelationElement_RestrictionSpecifique rel in lst.ToArray())
                    {
                        CRelationElement_RestrictionSpecifique_Application app = rel.GetRelationFor(acteur);
                        if (app != null)
                        {
                            CListeRestrictionsUtilisateurSurType restrictions = rel.GroupeRestriction.ListeRestrictions;
                            CRestrictionUtilisateurSurType       resTmp       = restrictions.GetRestriction(element.GetType());
                            restriction.Combine(resTmp);
                            lst.Remove(rel);
                        }
                    }
                    acteur = acteur.ActeurParent;
                }
                acteur = user.Acteur;
                if (lst.Count == 0)
                {
                    return;
                }

                foreach (CGroupeActeur groupe in acteur.TousLesGroupesActeur)
                {
                    foreach (CRelationElement_RestrictionSpecifique rel in lst.ToArray())
                    {
                        if (rel.GetRelationFor(groupe) != null)
                        {
                            CListeRestrictionsUtilisateurSurType restrictions = rel.GroupeRestriction.ListeRestrictions;
                            CRestrictionUtilisateurSurType       resTmp       = restrictions.GetRestriction(element.GetType());
                            restriction.Combine(resTmp);
                            lst.Remove(rel);
                        }
                    }
                    if (lst.Count == 0)
                    {
                        return;
                    }
                }


                foreach (CRelationUtilisateur_Profil relProfil in user.RelationsProfils)
                {
                    foreach (CRelationElement_RestrictionSpecifique rel in lst.ToArray())
                    {
                        if (rel.GetRelationFor(relProfil.Profil) != null)
                        {
                            CListeRestrictionsUtilisateurSurType restrictions = rel.GroupeRestriction.ListeRestrictions;
                            CRestrictionUtilisateurSurType       resTmp       = restrictions.GetRestriction(element.GetType());
                            restriction.Combine(resTmp);
                            lst.Remove(rel);
                            if (lst.Count == 0)
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }