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); }
//------------------------------------------------------------------- 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); } }
//------------------------------------------------------------------- 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); }