Attribution de roles aux utilisateurs en fonction de l'espac

cancel
Showing results for 
Search instead for 
Did you mean: 
tarl
Member II

Attribution de roles aux utilisateurs en fonction de l'espac

Bonjour tous le monde!
j'utilise la version 3.2 community et je voudrais savoir si il serait possible d'utiliser la catégorie d'un espace pour définir les droits d'un utilisateur.
Par exemple, j'ai deux espaces A et B, j'attribue la catégorie C-A à A et C-B à B. Un utilisateur 1 qui aurait quant-à lui une fonction spécifique dans le projet (fonction X) se verrait acquérir automatiquement ses droits en fonction de la catégorie du dossier. fonction X dans espace A = coordinateur; fonction X dans B = consumer;
Merci d'avance
5 Replies
rguinot
Customer

Re: Attribution de roles aux utilisateurs en fonction de l'espac

Bonjour,
En standard ce n'est pas possible sans développement spécifiques. D'habitude, on utilise plutôt les groupes Alfresco (synchronisés avec un LDAP ou pas), et on donne les permissions nécessaires au groupe au niveau de l'espace ou d'une arborescence  Ainsi, chaque personne que vous mettez dans un groupe se voit attribuer les permissions du groupe. Qu'est ce qui vous gêne dans ce mode de fonctionnement ?
tarl
Member II

Re: Attribution de roles aux utilisateurs en fonction de l'espac

Merci pour cette réponse rapide!
Le problème est que les groupes sont synchronisés avec le LDAP et on ne peut pas les modifier manuellement…à chaque syncro le LDAP écrase les modifications. Peut etre qu'il est possible de synchroniser seulement les utilisateurs mais pas les groupes du LDAP pour ensuite creer manuellement les groupes dans alfresco?
Qu'en pensez vous?
rguinot
Customer

Re: Attribution de roles aux utilisateurs en fonction de l'espac

on ne peut pas les modifier manuellement

Je ne vois pas bien ce que vous entendez par là. C'est au niveau du LDAP qu'il faut modifier les groupes,plus au niveau Alfresco, c'est bien à cela que sert un LDAP …
Vous pouvez par contre décider de ne pas "écraser" les groupes existants à la synchro des groupes via la propriété :

ldap.synchronisation.import.group.clearAllChildren=false
tarl
Member II

Re: Attribution de roles aux utilisateurs en fonction de l'espac

Merci encore pour votre réponse.
J'ai peut etre une autre solution: Si je créé un nouveau content model et que j'ajoute aux propriétés du dossier racine les différents acteurs du projet, est -il possible de tester grâce à un script l'appartenance de l'utilisateur à tel ou tel "propriété"? ce qui permettrai ensuite de lui attribuer les bonnes permissions ou permissions groups.
tarl
Member II

Re: Attribution de roles aux utilisateurs en fonction de l'espac

J'ai trouvé une solution qui convient pour mon probleme. j'utilise des permissions bidons dans l'espace racine de mon projet pour attribuer des roles spécifiques dans les différents espace de l'arborescence. Voilà le script si ca interesse quelqu'un:
// Add the permission corresponding to the Workflow "approbation". 
// An admin have to set one of the 3 roles: "Chef de projet", "Qualiticien" or "Developpeur" on the root space of the project to the concerned users.
// Then this script will set the right permissions to the  previous users in the different sub spaces(Drafts, Pending_Approval, Published…)

// Object user: reference the permission of the users in the current node

user = function (_info) {
  var listInfo = _info.split(';');
  this.access = listInfo[0];
  this.name = listInfo[1];
  this.permission = listInfo[2];
}

//Creation of an array of object user:

var listUser = new Array();
var newDecr = new String (space.getPermissions());
var tab = newDecr.split(',');
var size = tab.length

for each (i =0;i<size;i++) {
  listUser.push (new user(tab[i]));
}


addPermission(space);   

function addPermission(unEspace) {

var unEspacefils = unEspace.children;

  for each  (i in unEspacefils) {
   var nom = i.name;
//In the space "Drafts":
//Users who have the role Chef de projet in the root space, receive the role Coordinator.
//   "   "      Qualiticien      "   "   "   "    Consumer.
//   "   "      Developpeur      "   "   "   "    Coordinator.
  
  if (nom == "Drafts" ) {
   var size=listUser.length;
     for (var j=0; j< size; j++) {
       
       if (listUser[j].permission == "Chef_de_projet") {
            i.setPermission("Coordinator", listUser[j].name );
         }
       if (listUser[j].permission == "Quality") {
            i.setPermission("Consumer", listUser[j].name );     
        }
       if (listUser[j].permission == "Developper") {
            i.setPermission("Coordinator", listUser[j].name );     
        }
      i.save();
      i.setInheritsPermissions(false);
      i.save();        
     }
  }

//In the space "Pending_approval":
//Users who have the role Chef de projet in the root space, receive the role Coordinator.
//   "   "      Qualiticien      "   "   "   "    Coordinator.
//   "   "      Developpeur      "   "   "   "    Chief.

  if (nom == "Pending_Approval" ) {
   var size=listUser.length;
     for (var j=0; j< size; j++) {
       
       if (listUser[j].permission == "Chef_de_projet") {
            i.setPermission("Coordinator", listUser[j].name );
         }
       if (listUser[j].permission == "Quality") {
            i.setPermission("Coordinator", listUser[j].name );     
        }
       if (listUser[j].permission == "Developper") {
            i.setPermission("Chief", listUser[j].name );     
        }
       i.save();       
     }
  }

//In the space "Published":
//Users who have the role Chef de projet in the root space, receive the role Coordinator.
//   "   "      Qualiticien      "   "   "   "    Exec.
//   "   "      Developpeur      "   "   "   "    Consumer.

  if (nom == "Published") {
   var size=listUser.length;
     for (var j=0; j< size; j++) {
       
       if (listUser[j].permission == "Chef_de_projet") {
            i.setPermission("Coordinator", listUser[j].name );
         }
       if (listUser[j].permission == "Quality") {
            i.setPermission("Exec", listUser[j].name );     
        }
       if (listUser[j].permission == "Developper") {
            i.setPermission("Consumer", listUser[j].name );     
        }
      i.save();
      i.setInheritsPermissions(false);
      i.save();        
     }
  }

//In the space "Archives":
//Users who have the role Chef de projet in the root space, receive the role Coordinator.
//   "   "      Qualiticien      "   "   "   "    Consumer.
//   "   "      Developpeur      "   "   "   "    Consumer.

  if (nom == "Archives") {
   var size=listUser.length;
     for (var j=0; j< size; j++) {
       
       if (listUser[j].permission == "Chef_de_projet") {
            i.setPermission("Coordinator", listUser[j].name );
         }
       if (listUser[j].permission == "Quality") {
            i.setPermission("Consumer", listUser[j].name );     
        }
       if (listUser[j].permission == "Developper") {
            i.setPermission("Consumer", listUser[j].name );     
        }
      i.save();
      i.setInheritsPermissions(false);
      i.save();        
     }
  }

//In the space "Trash":
//Users who have the role Chef de projet in the root space, receive the role Trash.
//   "   "      Qualiticien      "   "   "   "    Trash.
//   "   "      Developpeur      "   "   "   "    Trash.

  if (nom == "Trash") {
   var size=listUser.length;
     for (var j=0; j< size; j++) {
       
       if (listUser[j].permission == "Chef_de_projet") {
            i.setPermission("Trash", listUser[j].name );
         }
       if (listUser[j].permission == "Quality") {
            i.setPermission("Trash", listUser[j].name );     
        }
       if (listUser[j].permission == "Developper") {
            i.setPermission("Trash", listUser[j].name );     
        }
      i.save();
      i.setInheritsPermissions(false);
      i.save();        
     }
  }
}
  
for each (z in unEspacefils) {
  if (z != null) {
   addPermission(z);
   }
  }

}