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