/// /////////////////////////////////////////////////// public IDonneeDroitUtilisateur GetDonneeDroit(string strCode) { CDonneesActeurUtilisateur user = Utilisateur; if (user == null)//C'est une session système { return(new CDonneeDroitSysteme(strCode)); } return(user.GetDonneeDroit(strCode)); }
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 void Init(CWorkflow workflowRacine) { if (workflowRacine == null) { Visible = false; return; } Visible = true; m_stackWorkflows = new Stack <CWorkflow>(); m_workflowRacine = workflowRacine; AfficheWorkflow(m_workflowRacine); //TESTDBKEYOK CDonneesActeurUtilisateur user = CUtilSession.GetUserForSession(workflowRacine.ContexteDonnee); m_bCanManage = user != null && ( user.GetDonneeDroit(CDroitDeBase.c_droitBaseGestionWorkflows) != null || user.DbKey == workflowRacine.KeyManager); Refresh(); }
//------------------------------------------------------------------- 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); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void m_btnActions_Click(object sender, System.EventArgs e) { CListeObjetsDonnees listeCheckes = m_panelListe.GetElementsCheckes(); if (listeCheckes.Count == 0) { CFormAlerte.Afficher(I.T("No element selected for action execution|1011"), EFormAlerteType.Exclamation); return; } CDonneesActeurUtilisateur user = CUtilSession.GetUserForSession(m_panelListe.ListeObjets.ContexteDonnee); bool bIsAdmin = user != null && user.GetDonneeDroit(CDroitDeBaseSC2I.c_droitAdministrationSysteme) != null; Hashtable listeActions = new Hashtable(); using (CWaitCursor curseur = new CWaitCursor()) { bool bFirst = true; //Cherche les actions applicables à tous les éléments foreach (CObjetDonneeAIdNumerique objet in listeCheckes) { IDeclencheurAction[] declencheurs = CRecuperateurDeclencheursActions.GetActionsManuelles(objet, false); Hashtable newTbl = new Hashtable(); foreach (IDeclencheurAction declencheur in declencheurs) { if (bFirst || listeActions[declencheur] != null) { newTbl[declencheur] = true; } } bFirst = false; if (newTbl.Count == 0 && !bIsAdmin) { CFormAlerte.Afficher(I.T("There is no action to execute on the selected elements|1012"), EFormAlerteType.Exclamation); return; } listeActions = newTbl; } } m_menuActions.MenuItems.Clear(); foreach (IDeclencheurAction declencheur in listeActions.Keys) { string strMenu = ""; if (declencheur is IDeclencheurActionManuelle) { strMenu = ((IDeclencheurActionManuelle)declencheur).MenuManuel; } string[] strMenus = strMenu.Split('/'); Menu.MenuItemCollection listeSousMenus = m_menuActions.MenuItems; if (strMenus.Length > 0) { foreach (string strSousMenu in strMenus) { if (strSousMenu.Trim().Length > 0) { MenuItem sousMenu = null; foreach (MenuItem item in listeSousMenus) { if (item.Text == strSousMenu) { sousMenu = item; break; } } if (sousMenu == null) { sousMenu = new MenuItem(strSousMenu); listeSousMenus.Add(sousMenu); } listeSousMenus = sousMenu.MenuItems; } } } CMenuItemDeclencheur itemAction = new CMenuItemDeclencheur(declencheur); itemAction.Click += new EventHandler(MenuDeclencheurClick); listeSousMenus.Add(itemAction); } if (bIsAdmin) { m_menuActions.MenuItems.Add(new MenuItem()); MenuItem itemApplyFormula = new MenuItem(I.T("Apply formula|20834")); m_menuActions.MenuItems.Add(itemApplyFormula); itemApplyFormula.Click += new EventHandler(itemApplyFormula_Click); } m_menuActions.Show(m_btnActions, new Point(0, m_btnActions.Height)); }