Class: controllerApiPersonne

controllerApiPersonne()

new controllerApiPersonne()

Controleurs de la route /api/personne/

Source:

Methods

(static) checkPermission(permission, context, ressource, next)

Vérifie la permission pour l'utilisateur courant et cette ressource

Parameters:
Name Type Description
permission
context Context
ressource Ressource
next errorCallback

appelé avec (error, ressource) où error est une string si y'a un pb de droit (rien sinon)

Source:

(static) getCurrentUser(context) → {Personne|undefined}

Retourne le user courant ou undefined

Parameters:
Name Type Description
context Context
Source:
Returns:

Le user

Type
Personne | undefined

(static) getCurrentUserGroupesMembre(context) → {Array.<string>}

Retourne les groupes (membre) du user courant ou undefined d'après la session
(à jour pour les modifs faites par l'utilisateur, mais pas celles faites par un externe,
peut donc contenir un groupe supprimé ou bien il peut manquer un groupe si son
admin a ajouté le user depuis le début de sa session

Parameters:
Name Type Description
context Context
Source:
To Do:
  • remplacer ça par un $groupesByUser qui maintienne une liste toujours à jour
Returns:

La liste des noms des groupes dont on est membre

Type
Array.<string>

(static) getCurrentUserGroupesSuivis(context) → {Array.<string>}

Retourne les groupes suivis par le user courant

Parameters:
Name Type Description
context Context
Source:
Returns:

La liste des noms des groupes que l'on suit (tableau vide si aucun ou pas identifié)

Type
Array.<string>

(static) getCurrentUserOid(context) → {string}

Retourne l'oid du user courant ou undefined

Parameters:
Name Type Description
context Context
Source:
Returns:

L'oid

Type
string

(static) getCurrentUserPid(context) → {string}

Retourne le pid du user courant ou undefined

Parameters:
Name Type Description
context Context
Source:
Returns:

Le pid

Type
string

(static) getDeniedMessage(permission, context, ressourceopt) → {string}

Retourne une chaîne vide si l'utilisateur courant a la permission demandée sur cette ressource
ou le message de rejet

Parameters:
Name Type Attributes Description
permission string

create|read|update|delete

context Context
ressource Ressource <optional>
Source:
Returns:

Le message d'interdiction éventuel (string vide sinon)

Type
string

(static) hasAllRights(context)

Renvoie true si c'est du json (api) appelé par une ip locale

Parameters:
Name Type Description
context Context
Source:
See:

(static) hasGenericPermission(context, permission) → {boolean}

Retourne true si le user en session a la permission générique demandée

Parameters:
Name Type Description
context Context
permission string
Source:
Returns:
Type
boolean

(static) hasPermission(permission, context, ressourceopt) → {boolean}

Retourne true si l'utilisateur courant a la permission demandée sur cette ressource
(ou sur toutes les ressources si ressource n'est pas fournie)

Parameters:
Name Type Attributes Description
permission string

create|read|update|delete

context Context
ressource Ressource <optional>
Source:
Returns:
Type
boolean

(static) hasReadPermission(context, ressource) → {boolean}

Renvoie true si cette ressource est visible par l'utilisateur courant
(helper de hasPermission qui peut s'utiliser directement)

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:
Type
boolean

(static) isAuthenticated(context) → {boolean}

Retourne true si on a un user en session

Parameters:
Name Type Description
context Context
Source:
Returns:
Type
boolean

(static) login(context, personne, next)

Connecte un user externe (regarde s'il existe et s'il faut le mettre à jour et le met en session)

Parameters:
Name Type Description
context Context
personne Personne
next personneCallback
Source:

(static) loginFromSesalab(context, sesalabUser, baseId, next)

Connecte un user sesalab (regarde s'il existe et s'il faut le mettre à jour et le met en session)

Parameters:
Name Type Description
context Context
sesalabUser object

Le user sesalab à son format

baseId string

La baseId du sesalab concerné

next personneCallback
Source:

(static) logout(context)

Déconnecte l'utilisateur courant

Parameters:
Name Type Description
context Context
Source:

(static) updateCurrentUser(context, personne) → {Personne|undefined}

Met à jour le user en session

Parameters:
Name Type Description
context Context
personne Personne
Source:
Returns:

Le user mis à jour (ou l'ancien si les oid correspondait pas)

Type
Personne | undefined

(inner) addToken(context, tokenopt, valueopt) → {boolean|string}

Ajoute un token et des valeurs associées en session

Parameters:
Name Type Attributes Default Description
context Context
token string <optional>
value * <optional>
true

Une ou des valeurs à mettre en session associées au token
(ne rien passer ici ni à checkToken permet juste de vérifier sa présence)

Source:
Returns:

false si y'avait pas de user connecté, le token sinon

Type
boolean | string

(inner) checkToken(context, token, valueopt) → {boolean}

Vérifie que le token en session correspond et le supprime

Parameters:
Name Type Attributes Default Description
context Context
token string
value * <optional>
true

La valeur qu'il doit avoir (celle qu'on avait passé à addToken précédemment)

Source:
Returns:
Type
boolean

(inner) getReadDeniedMessage(context, ressource) → {string|undefined}

Helper de checkAccess pour la permission read

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:

Le message d'interdiction éventuel (string vide sinon)

Type
string | undefined

(inner) getTokenValue(context, token) → {*}

Retourne la valeur du token en session et le supprime (donc faut choisir entre getToken et checkToken)

Parameters:
Name Type Description
context Context
token string
Source:
Returns:

La valeur stockée ou undefined si le token n'était pas en session

Type
*

(inner) hasRole(role, context) → {*|data.roles|Object|settings.components.personne.roles|Object|Object}

Parameters:
Name Type Description
role
context
Source:
Returns:
Type
* | data.roles | Object | settings.components.personne.roles | Object | Object

(inner) isAuteur(context, ressource) → {boolean|undefined}

Retourne true si l'utilisateur courant est auteur de la ressource

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:
Type
boolean | undefined

(inner) isContributeur(context, ressource) → {boolean|undefined}

Retourne true si l'utilisateur courant est contributeur de la ressource

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:
Type
boolean | undefined

(inner) isInGroupes(context, ressource) → {boolean}

Retourne true si l'utilisateur courant est membre d'un des groupes de la ressource

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:
Type
boolean

(inner) isInGroupesAuteurs(context, ressource) → {boolean}

Retourne true si l'utilisateur courant est membre d'un des groupes auteurs de la ressource

Parameters:
Name Type Description
context Context
ressource Ressource
Source:
Returns:
Type
boolean

(inner) isLanClient(context) → {boolean}

Retourne true si le client a une ip locale ou privée

Parameters:
Name Type Description
context
Source:
Returns:
Type
boolean

(inner) isPublic(ressource) → {boolean}

Retourne true si la ressource est publique

Parameters:
Name Type Description
ressource Ressource | Ref
Source:
Returns:
Type
boolean

(inner) isSesamathClient(context, next)

Appelle next avec (error, isLocalOrSesamath), où isLocalOrSesamath vaut true si c'est un client
avec une ip locale ou dont le reverse est en (dev)sesamath.net

Parameters:
Name Type Description
context Context
next function
Source:

(inner) refreshCurrentUser(context, next)

Rafraîchi la session d'après les données en cache ou en base

Parameters:
Name Type Description
context Context
next personneCallback
Source:

GET /api/personne/checkPid?pid=xxx&nom=yyy()

Vérifie qu'un pid correspond à un nom et retourne un user: {oid,pid,nom,prenom} ou un message d'erreur

Source:

GET /api/personne/current()

Renvoie le user courant et les liens pour le SSO
Retourne un objet
{
user: {pid, nom, prenom},
sso: {links: link[], name: string} // links peut être vide si le sso ne propose pas de liens (ça devrait pas arriver mais rien ne l'y oblige)
logoutUrl: string, // si on est authentifié
loginLinks: link[]
}
un link est de la forme {href: string, icon: string, value: string}

Source:

GET /api/personne/me()

Affiche les infos du user courant, pour debug

Source:

POST /api/personne/add()

Create / update une personne (poster un objet ayant les propriétés de Personne)

Source: