cancel
Showing results for 
Search instead for 
Did you mean: 

[resolu} utilisation de people.createPerson

pascalb
Champ in-the-making
Champ in-the-making
Bonjour,

Newbie en alfresco, je suis actuellement en train d'essayer d'enregistrer de nouveaux utilisateurs dans alfresco share :
2 questions me bloquent :

1) Pour ce faire, j'utilise un javascript xxx.get.js ou je fait  :

var newUserName = "tata";
var newUserPassword = "toto";
var result = remote.call("api/people/");
var newUser = people.createPerson(newUserName,"toto", "toto","toto@somedomain.com", newUserPassword ,true);
newUser.properties["cm:homeFolder"]=companyhome.createFolder(newUserName);
newUser.save();

Seulement, apres avoir raffraichi mes services, Share me renvoi un message d'erreur :

ReferenceError: "people" n'est pas défini

Mon appel via methode call a l'air de bien fonctionner mais il ne reconnait pas la methode people. Comment puis-je réaliser cet appel (via un import ??? de quoi ???)

2) Afin de réaliser cette tache, j'ai déclaré un formulaire dans le fichier xxx.get.html.ftl dans lequel je souhaiterais faire appel à une methode défini dans mon xxx.get.js. et ce lors du click  sur le bouton valider.
Pour résumé : sur mon formulaire (déclaré dans xxx.get.html.ftl) je souhaiterais faire appel à la methode creerNewUser() (que j'ai instancié dans xxx.get.js avec les paramétres vu sur le point 1) lors du click sur le bouton valider de mon formulaire.

N'ayant pas réussi à trouver réponse à mes questions sur le wiki ou forum alfresco, pourriez-vous me donner des pistes ou au mieu des exemples de code pour réaliser cela.

Merci
2 REPLIES 2

bertrandf
Champ on-the-rise
Champ on-the-rise
Bonjour (désolé pour la réponse tardive),

1) L'API People est accessible seulement par les webscripts qui sont situés coté Entrepôt (coté Alfresco).
Pour pouvoir créer un utilisateur depuis Share, vous devez faire appel aux webscripts situés coté alfresco, je pense notamment dans votre cas au webscript /api/people en méthode POST.

2) Non, il n'est pas possible depuis votre formulaire déclaré dans le fichier xxx.get.html.ftl d'appeler une fonction déclarée dans le fichier xxx.get.js.
Dans votre cas, il faudrait faire 2 webscripts, un en GET pour récupérer les informations sur l'utilisateur que vous voulez créer et un en POST pour récupérer les données et faire le traitement de création (dans un fichier xxx.post.js).


Voici un exemple de code "statique" pour créer un utilisateur depuis un webscript Share (dans votre cas, il suffit de récupérer les valeurs de votre formulaire avec des args."nom_param" et de mettre ces valeurs dans l'objet personObj) :
var personObj = {
  userName: "test",
  password: "test",
  firstName: "test",
  lastName: "test",
  email: "test@test.fr",
  disableAccount: false,
  quota: -1
};

var connector = remote.connect("alfresco");
var result = connector.post("/api/people", jsonUtils.toJSONString(personObj), "application/json");
if (result.status == status.STATUS_OK) {
  var pers = eval('(' + result.response + ')');
  model.userName = pers.userName;
}
else {
  //error
}


Cordialement.

PS : pourquoi désirez-vous créer un webscript de création d'utilisateurs étant donné que l'interface Share propose déjà une interface pour le faire ?

pascalb
Champ in-the-making
Champ in-the-making
Merci à toi Bertrand pour ces éclairssisements.

Il est vrai que depuis je pense mettre un peu améliorer avec Alfresco et avoir mieu compris certains mécanismes (ex des root-scoped objects liés à share (ou plutot surf) et ceux d'alfresco) mais toute réponse est bonne à prendre et me permet de voir que ce forum est bien fonctionnel

Pour répondre au PS : il me semble que la création d'utilisateurs se fait par l'admin apres authentification (directement dans l'interface). Nous aimerions donner la possibilité à des communautés ou personnes de se créer un compte dans Alfresco (directement via Share)