예제 #1
0
 public static bool IsDeconnecte(CSessionClient session)
 {
     if (session != null)
     {
         object val = session.GetPropriete(c_champIsSessionDeconnectee);
         if (val is bool && (bool)val)
         {
             return(true);
         }
     }
     return(false);
 }
예제 #2
0
        //-------------------------------------------------------------------
        private void GetListesPourValidation(
            ref ArrayList listeFichiersToDelete,
            ref ArrayList listeFichiersToValide,
            ref ArrayList listeFichiersANePasSupprimer)
        {
            CSessionClient session = CSessionClient.GetSessionForIdSession(IdSession);

            listeFichiersToDelete        = null;
            listeFichiersToValide        = null;
            listeFichiersANePasSupprimer = null;
            if (session != null)
            {
                listeFichiersToDelete        = session.GetPropriete(c_strListeFichiersToDelete) as ArrayList;
                listeFichiersToValide        = session.GetPropriete(c_strListeFichiersToValidate) as ArrayList;
                listeFichiersANePasSupprimer = session.GetPropriete(c_strListeFichierSANePasSupprimer) as ArrayList;
            }
            else
            {
                listeFichiersToDelete        = m_globaleListeANePasSupprimer;
                listeFichiersToValide        = m_globaleListeFichiersToValide;
                listeFichiersANePasSupprimer = m_globaleListeANePasSupprimer;
                return;
            }
            if (listeFichiersToDelete == null)
            {
                listeFichiersToDelete = new ArrayList();
                session.SetPropriete(c_strListeFichiersToDelete, listeFichiersToDelete);
            }
            if (listeFichiersToValide == null)
            {
                listeFichiersToValide = new ArrayList();
                session.SetPropriete(c_strListeFichiersToValidate, listeFichiersToValide);
            }
            if (listeFichiersANePasSupprimer == null)
            {
                listeFichiersANePasSupprimer = new ArrayList();
                session.SetPropriete(c_strListeFichierSANePasSupprimer, listeFichiersANePasSupprimer);
            }
        }
예제 #3
0
        //-------------------------------------------------------------------
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee ds)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(ds);

            CDonneesActeurUtilisateur userConnecte = CDonneesActeurUtilisateur.GetUserForSession(ds.IdSession, ds);

            CSessionClient session = CSessionClient.GetSessionForIdSession(IdSession);

            // Un utilisateur ne peut pas affecter un Profil de Licence à un autre utilisateur,
            // si ce profil est plus fort que le sien
            CInfoLicenceUserProfil profil = (CInfoLicenceUserProfil)session.GetPropriete(CInfoLicenceUserProfil.c_nomIdentification);

            //envoie les notifications sur modification de données utilisateur
            DataTable table = ds.Tables[GetNomTable()];

            foreach (DataRow row in table.Rows)
            {
                if (row.RowState != DataRowState.Unchanged)
                {
                    if (userConnecte != null)
                    {
                        // Vérifie premièrement que l'utilisateur connecté à le droit de gestion de utilisateurs
                        if (userConnecte.GetDonneeDroit(CDroitDeBase.c_droitBaseGestionUtilisateurs) == null)
                        {
                            result.EmpileErreur(I.T("You don't have System Right to Manage Application Users|10012"));
                            return(result);
                        }
                    }
                }

                if (row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified)
                {
                    if (userConnecte != null)
                    {
                        // Verifie ensuite que l'utilisteur connecté tente de donner un droit qu'il n'a pas !
                        CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(row);
                        foreach (CRelationActeurUtilisateur_Droit relDroit in user.RelationsDroits)
                        {
                            if (userConnecte.GetDonneeDroit(relDroit.Droit.Code) == null)
                            {
                                result.EmpileErreur(I.T("You don't have right to affect this system Right : @1|10019", relDroit.Droit.Libelle));
                                return(result);
                            }
                        }
                        // Vérifie que l'utilisateur connecté ne tente pas d'affecter un profil de licence supérieur au sien
                        string strIdProfil = user.IdProfilLicence;
                        CInfoLicenceUserProfil profilModifie = CGestionnaireProfilLicenceSurClient.GetProfil(strIdProfil);
                        if (profil == null || profilModifie != null && profilModifie.Priorite > profil.Priorite)
                        {
                            result.EmpileErreur(I.T("You can not affect a Licence Profile greater than your Profile : @1|20140", profilModifie.Nom));
                        }
                    }


                    //TESTDBKEYOK
                    CDonneeNotificationChangementDroitUtilisateur notDroit = new CDonneeNotificationChangementDroitUtilisateur(IdSession, CDbKey.CreateFromStringValue((string)row[CDonneesActeurUtilisateur.c_champIdUniversel]));
                    CEnvoyeurNotification.EnvoieNotifications(new IDonneeNotification[] { notDroit });
                }
            }
            return(result);
        }