Request description
J’ai donc suivi vos conseils concernant le dernier message, merci encore, je vais vous montrer ce que j’ai fait côté Simplicité (back) et côté React (Front).
Pour info, la création de cet utilisateur doit lui permettre de se connecter sur l’outil (front) et aussi à la UI standard avec des accès restreint.
J’ai maintenant un petit blocage concernant la stratégie du password coté backend.
Pouvez-vous m’aider un peu plus là-dessus ?
Merci pour votre aide.
Steps to reproduce
This request concerns an up-to-date Simplicité instance
and those are the steps to reproduce it:
- Création d’un user technique appartenant à un groupe d’accès “ADMIN_CREATE”.
- Création d’un objet custom user qui hérite de l’objet SimpleUser avec un attribut mot de passe non persistant + création d’un objet custom responsability qui hérite de l’objet Responsability avec un attribut id technique
- Autorisation en création et en update côté back sur l’objet custom user avec accès restreint
- Autorisation en création pour l’objet custom user au groupe “ADMIN_CREATE” + autorisation à la modification pour l’objet custom user au groupe “IMMO_FREEMIUM” avec des accès restreints + autorisation en création pour l’objet custom responsability au groupe “ADMIN_CREATE”
- En front
Voici mon code simplifié :
var values = {
lastname : "paul",
firstname : "paul",
email : "paul@paul.fr",
password : "password",
}
onSubmit: async (values) => {
const app = Simplicite.session({
url: url,
authtoken: token_user_technique,
});
try {
const userObj = app.getBusinessObject("ImmoCustomUser");
const user = await userObj.getForCreate();
user.usr_login = values.email;
user.usr_last_name = values.lastname;
user.usr_first_name = values.firstname;
user.usr_pwd = values.password;
user.usr_email = values.email;
user.usr_active = 1;
const new_user = await userObj.create(user);
if (new_user) {
const respObj = app.getBusinessObject("ImmoCostumResponsability");
const resp = await respObj.getForCreate();
resp.ImmoCostumResponsability_ImmoCustomUser_id = new_user.row_id;
resp.rsp_login_id = new_user.row_id;
resp.rsp_login_id__usr_login = new_user.usr_login;
resp.row_module_id = 40;
resp.row_module_id__mdl_name = "ImmoUser";
resp.rsp_activ = 1;
resp.rsp_group_id = 55;
resp.rsp_group_id__grp_name = "IMMO_FREEMIUM";
// groupe avec des accès restreint
const new_resp = await respObj.create(resp);
if (new_resp) {
// ici ça ne sert à rien de console.log ces objets car le user technique n'a pas l'autorisation.
// la création se fait correctement en back
}
} catch (e) {
console.error(e);
}
}
- En back
Technical information
Instance /health
[Platform]
Status=OK
Version=5.2.7
BuiltOn=2022-06-14 00:21
Git=5.2/d9643d29bd316734a300fbf98cbdd9a354c8b9e4
Encoding=UTF-8
EndpointIP=172.23.0.8
EndpointURL=http://a969f6572643:8080
TimeZone=Europe/Paris
SystemDate=2022-06-16 18:01:25