Pré requis pour utiliser le produit en mode multi-sociétés
Vérifications en base Organisation :
- Vérifier l'existence des ressources société (si nécessaire, créer au moins 1 ressource « société »)
- Vérifier l'existence des relations suivantes :
- User Societe (UserSociete) : « appartient à la société »
- Peut administrer la société (UserAdminOrgaSociete) : pour nommer des administrateurs de société
- Service Societe (ServiceSociete) : pour associer des services à des sociétés
Configurer les clés de web.config suivantes :
<!--Base Orga Web : permettre de lancer la mise à jour automatique des relations avec la ressource société 0: Inactif 1: Actif-->
<add key="ModeOrga.UpdateRelationSociete" value="0" />
<!--Base Orga Web : permettre l'administration de domaine tout en étant mono-société, 0:Normal 1:Multi Site -->
<add key="ModeOrgaExt" value="1" />
<!-- Mode de la Organisation 0: Normal 1:Multisociété 2: Saas mutualisée -->
<add key="ModeOrga" value="1" />
Ce que fait le produit :
- Filtrage des utilisateurs par société
- Filtrage des services par société
- Possibilité d’avoir un administrateur Organisation par société
En pratique :
Si vous avez un champ OpenDirectoryPicker({0},'Roles:QMDOC_Vérification', true);
Vous ne pouvez sélectionner que des personnes de la société.
Par contre, un droit de lecture en QMDOC_Vérification ne limite pas l’accès par société !
Prérequis pour le bon fonctionnement des rôles du type RM-xxx :
Créer un champ caché Aps_Societe qui contient la société Emettrice
Ce champ doit etre multi-évalué au cas ou un utilisateur appartient à plusieurs sociétés
Ex de valeur de défaut :
returnValue= ( new Avanteam.Application.Security.APSUser( (string)apsSession["UserFullName"])).Societe;
Pour gérer les droits d’accès dans les vues :
Aucun changement dans les vues par rapport au mode monosociété
Il faut se baser sur les droits réels sur le document, notamment pour un bon fonctionnement du moteur de recherche Fulltexte
Créer un Acteur du type F-Aps_Societe reste la solution la plus simple
Il faut donc appliquer a minima cet acteur dans les droits de lecture des documents ou des workflows
Pour filtrer d’autres ressources :
On peut filtrer par
OpenDirectoryPicker({0},‘FonctionSociete:’+APSGetFieldValue ByName(‘societe’), true);
Ou par des vues filtrées
FRM.Aps_Societe = @UserSociete et en code sql = sql.Replace("@UserSociete","'"+UserInfo.Societe.Replace("'","''" )+"'");
Attention nécessité de modifier UserProperties.ascx pour filtrer dans la fiche utilisateur
Paramétrages avancés (liste de valeurs...)
Création de formulaires de paramétrage par société avec gestion des droits