public bool Acknowledge() { CResultAErreur result = CResultAErreur.True; if (DateAcquittement != null) { return(false); } BeginEdit(); CDonneesActeurUtilisateur utilisateurEnCours = CDonneesActeurUtilisateur.GetUserForSession(ContexteDonnee.IdSession, ContexteDonnee); if (utilisateurEnCours != null) { ResponsableAcquittement = utilisateurEnCours.Acteur; DateAcquittement = DateTime.Now; // Acquitte les alarmes filles en cascade foreach (CAlarme alarmeFille in AlarmesFilles) { alarmeFille.Acknowledge(); } } result = CommitEdit(); return(result.Result); }
/// //////////////////////////////////////////////////// private bool ShouldAffiche(CMenuCustom menu) { bool bAfficheGroupes = false; bool bAfficheProfils = false; bool bAffiche = true; CDbKey[] keysGroupes = menu.KeysGroupes; if (keysGroupes != null && keysGroupes.Length > 0) { bAffiche = false; //TESTDBKEYOK CDbKey[] lstGroupesSession = CTimosApp.SessionClient.GetInfoUtilisateur().ListeKeysGroupes; foreach (CDbKey keyVoyant in keysGroupes) { foreach (CDbKey key in lstGroupesSession) { if (keyVoyant == key) { bAfficheGroupes = true; } } } } //TESTDBKEYOK CDbKey[] keysProfils = menu.KeysProfils; if (keysProfils != null && keysProfils.Length > 0) { bAffiche = false; CDonneesActeurUtilisateur user = CDonneesActeurUtilisateur.GetUserForSession( CTimosApp.SessionClient.IdSession, m_menuCustom.ContexteDonnee); foreach (CDbKey keyVoyant in keysProfils) { CProfilUtilisateur profilVoyant = new CProfilUtilisateur(m_menuCustom.ContexteDonnee); if (profilVoyant.ReadIfExists(keyVoyant)) { if (user.IsInProfil(profilVoyant)) { bAfficheGroupes = true; } } } } if (!bAffiche) { return(bAfficheGroupes || bAfficheProfils); } return(bAffiche); }
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; } }
//------------------------------------------------------------------- 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); }