API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments obligatoires :username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Le 3e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Le 2e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusernames est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur, c'est soit son username, soit son email. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. L'argumentip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Le userId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande est différente de newEmail , qui permet à un utilisateur de demander le changement de son adresse mail. | ||||||||||||||||||||||||||||||||||||||||||
updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}} | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > |
newEmailCette commande lance une demande de changement de mail pour un utilisateur. Elle prend en argumentsusername pour identifier l'utilisateur concerné, newEmail qui est la nouvelle adresse mail demandée, et password qui doit être le mot de passe correct de l'utilisateur. Un mail d'information est envoyé à l'adresse email courante, et un mail de confirmation de changement est envoyé à la nouvelle adresse. L'adresse actuelle est celle qui reste valide tant que la confirmation n'a pas eu lieu. La demande est effacée dans la nuit qui suit les 24h de la demande. La confirmation se fait avec la commande confirmEmail . Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}}Cette commande est différente de la commande updateMail , qui permet de changer une adresse mail unilatéralement, par un administrateur.
confirmEmailCette commande permet la confirmation d'un changement d'email. Elle prend comme seul argumentkey , qui est la clé qui a été envoyée dans le message de confirmation, qui a été envoyé lors de la commande newEmail . Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} | ||||||||||||||||||||||||||||||||||||||||||
-- PascalWassong - 2017-01-10
|
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnueslogin | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments obligatoires : username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Le 3e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments obligatoires : username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Le 3e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} username | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande rend le username à partir d'un userId . L'argument userId est nécessaire. Le 2e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande rend le username à partir d'un userId . L'argument userId est nécessaire. Le 2e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNames | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande renvoie le nom complet des utilisateurs donnés en argument. L'argument username est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande renvoie le nom complet des utilisateurs donnés en argument. L'argument usernames est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur, c'est soit son username, soit son email. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. L'argumentip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Le userId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10
|
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnueslogin | |||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||
< < | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments : username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||
> > | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments obligatoires : username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Le 3e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} username | |||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||
< < | Cette commande rend le username à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat : | ||||||||||||||||||||||||||||||||
> > | Cette commande rend le username à partir d'un userId . L'argument userId est nécessaire. Le 2e argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Exemple de résultat : | ||||||||||||||||||||||||||||||||
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
| |||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur, c'est soit son username, soit son email. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymous | |||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||
< < | Cette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. Le userId de l'utilisateur créé est rendu. Exemple de résultat : | ||||||||||||||||||||||||||||||||
> > | Cette commande permet de créer un utilisateur anonyme. L'argument ip est optionel, et permet de conserver la dernière adresse IP de l'utilisateur, dans le champ lastLoginIp de la table users . Le userId de l'utilisateur créé est rendu. Exemple de résultat : | ||||||||||||||||||||||||||||||||
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10
|
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < |
| ||||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||||
API du serveur CDSLoginInternal | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Les points d'entrées de ce projet sont essentiellement utilisés par ProjetCDSLogin. | ||||||||||||||||||||||||||||||||||||||||
> > | Les points d'entrées de ce projet sont essentiellement utilisés par CdsLoginApi. | ||||||||||||||||||||||||||||||||||||||||
Paramètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur, c'est soit son username, soit son email. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10 | |||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||
> > |
|
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnueslogin | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments : username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments : username est soit le nom de l'utilisateur, soit son mail et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme : | ||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPassword | |||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argument username pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argument username pour identifier l'utilisateur, c'est soit son username, soit son email. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternalLes points d'entrées de ce projet sont essentiellement utilisés par ProjetCDSLogin.Paramètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} users | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument, requesterId , qui est obligatoire mais complètement ignoré. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument, requesterId , qui est obligatoire mais complètement ignoré, ce qui fait un trou de sécurité. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs : | ||||||||||||||||||||||||||||||||||||||||||
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternal | |||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||
> > | Les points d'entrées de ce projet sont essentiellement utilisés par ProjetCDSLogin. | ||||||||||||||||||||||||||||||||||||||||
Paramètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10 | |||||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||||
< < |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} usersCette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument,requesterId , qui est obligatoire mais complètement ignoré. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} getUser.Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argumentrequesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { "lastLogin": "1472572409342", "password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy", "preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "firstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "lastname" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}, "role": "user", "creationDate": "1457520518948", "email": "myNiceUsername@astro.unistra.fr", "username": "myNiceUsername", "status": "0" }}} isXmatchMailCette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise àtrue . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}}-- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowedCette commande permet de changer la valeur de l'attributisDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat :
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} users | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument, requesterId , qui est obligatoire mais complètement ignoré.
Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument, requesterId , qui est obligatoire mais complètement ignoré. Exemple de résultat, lorsque la base ne contient que 2 utilisateurs :
{"items":[{"mId":"$2a$10$xlua7GGJ8qBjLz7F0E1e7.LD66xZ4tbGVCrMjy./8uArZ3uaUEs9","mLastLoginAsLong":1353071061842,"mCreationDateAsLong":1353071061484,"mAnonyme":true,"mUsername":"anonymous","mPassword":"$2a$10$DP8/n79Lde7l9axlvg89mufkDBhMnwugsJj92mh5RVde0CIkWm32.","mEmail":"","mRole":"user","mPreferences":{"user_isdatapublic":"no","portal_files_quota":"100","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"16 nov. 2012 14:04:21","mStatus":0},{"mId":"$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy","mLastLoginAsLong":1472572409342,"mCreationDateAsLong":1457520518948,"mAnonyme":false,"mUsername":"myNiceUsername","mPassword":"$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy","mEmail":"myNiceUsername@astro.unistra.fr","mRole":"user","mPreferences":{"portal_imageviewer":"aladinPreviewer","user_researchdomain":"","user_isdatapublic":"no","user_firstname":"firstname","portal_islinksnewwindow":"no","user_lastname":"lastname","portal_files_quota":"500","user_affiliation":"","portal_files_used":"0"},"mAdminInfo":{},"mIsDeleteAllowed":true,"mCreationDate":"9 mars 2016 11:48:38","mStatus":0}]} | ||||||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||||||
< < | - | ||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | getUser | ||||||||||||||||||||||||||||||||||||||||||
> > | getUser. | ||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de récupérer toutes les informations d'un seul utilisateur. L'argument requesterId est obligatoire mais complètement ignoré. L'argument username est obligatoire et donne le nom de l'utilisateur pour lequel on veut toutes les données. Exemple de résultat :
{"cdsLogin": {"user": { | ||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | "lastLogin": "1472572409342",
"password": "$2a$10$Dp.CQ5ZcBsZm9..5oPUJQepqfZQo0tnnyXApY.x6H42M7LDzAhIzy",
"preferences": {"preference": [
{
| ||||||||||||||||||||||||||||||||||||||||||
isXmatchMail | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de savoir si la préférence pour recevoir les mails xmatch est mise à true . Elle prend en argument soit username , soit userId , pour identifier l'utilisateur. Si les 2 sont donnés, c'est la valeur de username qui est utilisée. Exemple de résultat :
{"cdsLogin": {"returnedValue": "no"}} | ||||||||||||||||||||||||||||||||||||||||||
-- PascalWassong - 2017-01-10 | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePasswordCette commande permet de modifier le mot de passe d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} updateMailCette commande permet de modifier l'adresse mail d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} updateRoleCette commande permet de modifier le rôle d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}}Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. updateStatusCette commande permet de modifier le statut d'un utilisateur. L'argumentrequesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}}Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED .
updatePreferencesCette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} setDeleteAllowed | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de changer la valeur de l'attribut isDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de changer la valeur de l'attribut isDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"isDeleteAllowedUpdated": "true"}} users | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet d'obtenir la liste complète de tous les utilisateurs. Elle a un seul argument, requesterId , qui est obligatoire mais complètement ignoré. | ||||||||||||||||||||||||||||||||||||||||||
Exemple de résultat :
- getUserExemple de résultat :- isXmatchMailExemple de résultat :--- PascalWassong - 2017-01-10 | |||||||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||||||
< < |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymousCette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. LeuserId de l'utilisateur créé est rendu. Exemple de résultat :
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePassword | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de modifier le mot de passe d'un utilisateur. L'argument requesterId est le userId avec des privilèges d'administrateur. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour changer le mot de passe. Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier le mot de passe d'un utilisateur. L'argument requesterId est soit un userId avec des privilèges d'administrateur, soit le userId de l'utilisateur pour lequel on change le mot de passe. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour lequel changer le mot de passe. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le mot de passe est changé. Exemple de résultat :
{"cdsLogin": {"isPasswordUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
updateMail | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier l'adresse mail d'un utilisateur. L'argument requesterId est soit un userId avec des privilèges d'administrateur. L'argument email est le nouveau email qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le email. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le email est changé. Exemple de résultat :
{"cdsLogin": {"isEmailUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
updateRole | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier le rôle d'un utilisateur. L'argument requesterId est soit un userId avec des privilèges d'administrateur. L'argument role est le nouveau rôle qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le rôle est changé. Exemple de résultat :
{"cdsLogin": {"isRoleUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | Les 3 rôles connus sont "user", "admin" et "correcteur", mais il est possible de mettre n'importe quoi. Le rôle "admin" est pour ceux qui ont des privilèges d'administrateur. | ||||||||||||||||||||||||||||||||||||||||||
updateStatus | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier le statut d'un utilisateur. L'argument requesterId est soit un userId avec des privilèges d'administrateur. L'argument status est le nouveau statut qui sera mis en place. L'argument username est le nom identifiant l'utilisateur pour lequel changer le rôle. Il est optionnel, s'il n'existe pas, c'est l'utilisateur requesterId dont le statut est changé. Exemple de résultat :
{"cdsLogin": {"isStatusUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | Il y a 2 valeurs possibles pour le statut : 0 , qui signifie OPEN et 1 , qui veut dire CLOSED . | ||||||||||||||||||||||||||||||||||||||||||
updatePreferences | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat :
- | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis à admin . L'argument requesterId est le seul qui soit obligatoire, et doit soit être le userId d'un utilisateur qui a les privilèges d'administrateur, soit l'utilisateur pour lequel on veut modifier les préférences. Il faut aussi identifier l'utilisateur pour qui on veut changer les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les préférences de l'utilisateur requesterId qui sont modifiées. La liste des préférences est donnés sous la forme cdslogin:key=value . key est le nom de la préférence (elle sera mise toute en minuscule), value est la valeur de la préférence. Il ne faut pas mettre de double point : dans la key . Attention, toutes les préférences existantes sont perdues. Les nouvelles préférences remplacent complètement les anciennes. Exemple de résultat :
{"cdsLogin": {"isPreferencesUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
setDeleteAllowed | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de changer la valeur de l'attribut isDeleteAllowed pour un utilisateur. L'argument userId identifie l'utilisateur et isAllowed donne la nouvelle valeur, qui doit être soit true , soit false . | ||||||||||||||||||||||||||||||||||||||||||
Exemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | - | ||||||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"isDeleteAllowedUpdated": "true"}} | ||||||||||||||||||||||||||||||||||||||||||
usersExemple de résultat :- getUserExemple de résultat :- isXmatchMailExemple de résultat :--- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json .
Commandes reconnuesloginCette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments :username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} usernameCette commande rend leusername à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat :
{"cdsLogin": {"username": "myNiceUsername"}} dataCette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" }}} username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} preferencesCette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis àadmin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ { "key": "portal.imageviewer", "content": "aladinPreviewer" }, { "key": "user.isdatapublic", "content": "no" }, {"key": "user.affiliation"}, { "key": "user.firstname", "content": "MyFirstname" }, { "key": "portal.files.quota", "content": "500" }, {"key": "user.researchdomain"}, { "key": "user.lastname", "content": "MyName" }, { "key": "portal.islinksnewwindow", "content": "no" }, { "key": "portal.files.used", "content": "0" } ]}}} prettyNamesCette commande renvoie le nom complet des utilisateurs donnés en argument. L'argumentusername est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat :
{"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}}Exemple avec plusieurs résultats : {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} createUserCette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit.
Example de résulat :
{"cdsLogin": { "created": "true", "username": "myNiceUsername" }}Et quelques cas d'erreur : {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} activateCette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argumentuserId est nécessaire pour identifier le compte. Exemple de résultat :
{"cdsLogin": {"isUserActivated": "true"}} askForNewPasswordCette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argumentusername pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat :
{"cdsLogin": {"mailSent": "true"}} resetPasswordCette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argumentusername identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat :
{"cdsLogin": {"isPasswordReseted": "true"}} createAnonymous | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de créer un utilisateur anonyme. Elle ne prend aucun argument. Le userId de l'utilisateur créé est rendu. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
{"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} updatePassword | |||||||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||||||
< < | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de modifier le mot de passe d'un utilisateur. L'argument requesterId est le userId avec des privilèges d'administrateur. L'argument oldPassword est le mot de passe actuel, et est utilisé pour vérifier qu'il est correct avant de permettre la modification. L'argument newPassword est le nouveau mot de passe qui sera mis en place. Il doit respecter les mêmes contraintes que lors de la création d'un utilisateur, donc avoir une longueur entre 7 et 29 (inclus). L'argument username est le nom identifiant l'utilisateur pour changer le mot de passe. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
updateMailExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
updateRoleExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
updateStatusExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
updatePreferencesExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
setDeleteAllowedExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
usersExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
getUserExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
isXmatchMailExemple de résultat : | |||||||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||||||
> > | - | ||||||||||||||||||||||||||||||||||||||||||
-- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternalParamètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.format | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Le format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut est xml . Le seul autre format reconnu est json . | ||||||||||||||||||||||||||||||||||||||
> > | Le format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut est xml . Le seul autre format reconnu est json . Tous les exemples de résultat ci-dessous sont au format json . | ||||||||||||||||||||||||||||||||||||||
Commandes reconnueslogin | |||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > |
Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments : username est le nom de l'utilisateur et password est son mot de passe. Si l'utilisateur existe et que le mot de passe est correct, le userId de l'utilisateur est rendu sous la forme :
{"cdsLogin": {"userId": "$2a$10$mG9iCo3rz4WNzKWrYA3Kqe.02yHaGzhDVIbT.r9tyNdWQObiIIOoy"}} | ||||||||||||||||||||||||||||||||||||||
username | |||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | datapreferencesprettynamescreateuseractivateaskfornewpasswordresetpasswordcreateanonymousupdatepasswordupdatemailupdateroleupdatestatusupdatepreferencessetdeleteallowedusersgetuserisxmatchmail | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | tables | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande rend le username à partir d'un userId . L'argument userId est nécessaire. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"username": "myNiceUsername"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de récupérer la liste de toutes les VOTable que l'utilisateur a uploadé. Voici un exemple de réponse au format json. | ||||||||||||||||||||||||||||||||||||||
> > | data | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | {"cdsStore": {"tables": [ { "date": "1473263765224", "fileName": "A2744CL-1", "metadata": { "coordinates": { "decUnit": "deg", "dec": "DEC", "raUnit": "deg", "errorType": "noError", "ra": "RA" }, "comment": "bla bla bla" }, "size": "6018", "nbRows": "1" }, { "date": "1474374997438", "fileName": "csv-with-header.csv", "metadata": { "coordinates": {}, "comment": "csv hide" }, "size": "941", "nbRows": "3" } ]}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | S'il n'y a qu'une seule table, la valeur de tables n'est pas un tableau, mais un objet. Voici un exemple :
{"cdsStore": {"tables": { "date": "1474374997438", "fileName": "csv-with-header.csv", "metadata": { "coordinates": {}, "comment": "csv hide" | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande renvoie des informations de base à propos d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis à admin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les données. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"data": { "lastLogin": "Tue Jan 10 14:31:33 CET 2017", "role": "user", "creationDate": "Wed Mar 09 11:48:38 CET 2016", "username": "myNiceUsername", "eMail": "myNiceUsername@astro.unistra.fr" | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | }, "size": "941", "nbRows": "3" | ||||||||||||||||||||||||||||||||||||||
}}} | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | S'il n'y a aucune table, un objet vide est rendu : | ||||||||||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | {"cdsStore": {}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Dans le navigateur, pour obtenir systématiquement un tableau, vous pouvez écrire :
[].concat(cdsStore.tables); | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande renvoie l'email d'un utilisateur. 2 arguments sont possibles pour identifier l'utilisateur : username ou userId . Si username a une valeur, c'est elle qui est utilisée et la valeur de userId est ignorée. Exemple de résultat :
{"cdsLogin": {"email": "myNiceUsername@astro.unistra.fr"}} | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | L'objet coordinates existent toujours dans les métadatas, même s'il est vide. Cf l'exemple ci-dessus concernant le fichier csv-with-header.csv . | ||||||||||||||||||||||||||||||||||||||
> > | preferences | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | deleteTables | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de supprimer une table qui a été uploadé. La commande prend un seul argument, tables , qui contient la liste des noms des tables à supprimer, séparées par des slash ( / ).Ce caractère fait parti des caractères qui ne peuvent pas être dans le nom d'un fichier. Voir les commandes upload , uploadFromUrl et rename | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande renvoie les préférences d'un utilisateur. Son accès est restreint à des administrateurs, qui ont leur rôle mis à admin . Les arguments sont requesterId , qui doit être le userId d'un utilisateur qui a les privilèges d'administrateur. Il faut aussi identifier l'utilisateur pour qui on veut les préférences. 2 arguments sont utilisables pour ça : username et userId . Si username est donné, userId est inutilisé. Si username n'est pas donné, alors userId est utilisé. Si aucun des 2 n'est donné, alors c'est les données de l'utilisateur requesterId qui sont fournies. Exemple de résultat :
{"cdsLogin": {"preferences": {"preference": [ | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | La valeur rendue par la commande est toujours la suivante, même si on a demandé la suppression d'une table inexistante.
{"cdsStore": {}} downloadTableCette commande permet de récupérer une table. Cette commande utilise l'argument généraloutputFormat . Le paramètre filename est obligatoire, et donne le nom du fichier à récupérer. En sortie, on récupère la VOTable dans le format qui a été spécifié par outputFormat .
updateTableCommentCette commande permet de modifier le commentaire associé à une table. Le commentaire est stocké dans les métadonnées qui sont renvoyées lorsqu'on récupère la liste de toutes les tables. Les arguments sontfilename et comment . Ils sont obligatoires.
En résultat, la commande renvoie dans l'objet cdsPortal , un sous objet nommé commentUpdated , qui a comme valeur le nouveau commentaire.
updateCoordinatesMetadataCette commande permet de mettre à jour les informations sur les colonnes RA et DEC de la VOTable, ainsi que sur les colonnes d'erreurs associées. La liste des paramètres reconnus est
tableMetadataCette commande permet de récupérer les informations concernant les colonnes d'une table. Le paramètrefilename , indiquant pour quelle VOTable on veut le résultat, est obligatoire. Le résultat donne la liste de toutes les colonnes de la table, avec l'ucd de la colonne. Un exemple de résultat :
{"cdsStore": {"columns": [ | ||||||||||||||||||||||||||||||||||||||
{ | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "meta.id;meta.main", "name": "ID" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "portal.imageviewer", "content": "aladinPreviewer" | ||||||||||||||||||||||||||||||||||||||
}, { | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "pos.eq.ra;meta.main", "name": "RA" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "user.isdatapublic", "content": "no" | ||||||||||||||||||||||||||||||||||||||
}, | |||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"key": "user.affiliation"}, | ||||||||||||||||||||||||||||||||||||||
{ | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "pos.eq.dec;meta.main", "name": "DEC" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "user.firstname", "content": "MyFirstname" | ||||||||||||||||||||||||||||||||||||||
}, { | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "phot.mag;em.opt.B", "name": "MAG_B435" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "portal.files.quota", "content": "500" | ||||||||||||||||||||||||||||||||||||||
}, | |||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"key": "user.researchdomain"}, | ||||||||||||||||||||||||||||||||||||||
{ | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "phot.mag;em.opt.V", "name": "MAG_V606" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "user.lastname", "content": "MyName" | ||||||||||||||||||||||||||||||||||||||
}, { | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "stat.error;phot.mag;em.opt.B", "name": "MAGERR_B435" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "portal.islinksnewwindow", "content": "no" | ||||||||||||||||||||||||||||||||||||||
}, { | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | "ucd": "stat.error;phot.mag;em.opt.V", "name": "MAGERR_V606" | ||||||||||||||||||||||||||||||||||||||
> > | "key": "portal.files.used", "content": "0" | ||||||||||||||||||||||||||||||||||||||
} | |||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | ]}} | ||||||||||||||||||||||||||||||||||||||
> > | ]}}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Tout comme pour les tables, s'il n'y a qu'une seule colonne, la valeur de columns est un objet, pas un tableau. | ||||||||||||||||||||||||||||||||||||||
> > | prettyNames | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | rename | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de renommer un fichier. Les paramètres obligatoires (forcément en minuscule) sont : | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande renvoie le nom complet des utilisateurs donnés en argument. L'argument username est nécessaire et est une liste de username séparé par des virgules , . Les utilisateurs inexistants sont simplement ignorés. Un utilisateur doit aussi avoir autorisé l'affichage public de ses données. Cela se fait en mettant la préférence user.ispublicdata à autre chose que no . Si ce n'est pas le cas, cet utilisateur est ignoré. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"prettyNames": {"prettyName": { "content": "MyFirstname MyName", "username": "myNiceUsername" }}}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | filename : le nom actuel du fichier. Le nom est transformé, s'il contient des caractères interdits. Voir la commande upload pour plus de détails. | ||||||||||||||||||||||||||||||||||||||
> > | Exemple avec plusieurs résultats : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"prettyNames": {"prettyName": [ { "content": "MyFirstname MyName", "username": "myNiceUsername" }, { "content": "MyFirstname MyName", "username": "myNiceUsername" } ]}}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | newname : le nouveau nom du fichier. Il ne faut pas qu'un autre fichier avec le nouveau nom existe, sinon une erreur est rendue. | ||||||||||||||||||||||||||||||||||||||
> > | createUser | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | En cas de succès, le résultat est :
{"cdsStore": {"rename": "ok"}} | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de créer un nouvel utilisateur. Elle peut prendre de nombreux arguments :
| ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > |
| ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | addThing | ||||||||||||||||||||||||||||||||||||||
> > | L'utilisateur est dans un statut "not-activated". Il doit utiliser le lien qui est dans son email, utilisant la commande activace , pour activer son compte. Si le compte n'est pas activé au bout de 72h, il est effacé dans la nuit qui suit. | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet d'ajouter un objet JSON. Le contenu de l'objet est absolument libre. Les paramètres obligatoires sont : | ||||||||||||||||||||||||||||||||||||||
> > | Example de résulat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": { "created": "true", "username": "myNiceUsername" }} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie. | ||||||||||||||||||||||||||||||||||||||
> > | Et quelques cas d'erreur : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"error": "This username is already taken"}} {"cdsLogin": {"error": "A user with this email already exists"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | id : un identifiant unique de l'objet, pour la catégorie en question. 2 catégories différentes peuvent contenir le même id. | ||||||||||||||||||||||||||||||||||||||
> > | activate | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | value : la valeur de l'objet. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. L'ensemble de l'objet est sauvé, sans que le serveur regarde le contenu. La seule exception est la valeur de id . Lorsqu'on récupère une liste d'objets, cette valeur sera écrasée par l'identifiant donné par le paramètre id . La longueur maximum de la chaîne de caractères de la valeur est limitée. La limite actuelle est 2048 octets. | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet à un utilisateur d'activé son compte, dans les 72h après sa création. L'argument userId est nécessaire pour identifier le compte. Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"isUserActivated": "true"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | maxThings : ce paramètre optionnel indique le nombre maximum d'objets à garder dans cette catégorie. Si la limite est dépassée avec le nouveau objet qu'on ajoute, les plus anciens objets sont supprimés. | ||||||||||||||||||||||||||||||||||||||
> > | askForNewPassword | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | setThings | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande remplace complètement tous les objets d'une catégorie par le ou les nouveaux objets passés avec la commande. Les paramètres obligatoires sont : | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet à utilisateur de recevoir un mail lui permettant de changer son mot de passe sans avoir à donner l'ancier. Il faut l'argument username pour identifier l'utilisateur. Le lien dans le mail est valide pendant 24h (en fait, jusqu'au milieu de la nuit qui suit les 24h). Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"mailSent": "true"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie. | ||||||||||||||||||||||||||||||||||||||
> > | resetPassword | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | value : la liste des nouveaux objets à stocker. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. Voici un exemple de format : | ||||||||||||||||||||||||||||||||||||||
> > | Cette commande permet de réinitialiser un mot de passe. Tous les arguments sont obligatoire. L'argument username identifie l'utilisateur pour qui le mot de passe doit changer. La clé nommée key est celle qui a été envoyé dans de mail de demande de nouveau mot de passe. Il faut ensuite donner le nouveau mot de passe dans l'argument password et le répéter dans verifyPassword . Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"isPasswordReseted": "true"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | value={id10:{p33: v3, p44:v4},id11:{p1:v1}} | ||||||||||||||||||||||||||||||||||||||
> > | createAnonymous | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | La commande renvoie le nombre d'objets ajoutés : | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | {"cdsLogin": {"userId": "$2a$10$ktOu.bZWP/MR29OIgnI7YO.S01BzgdgNnkk5BT1wmaJHu898GvyXC"}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | {"cdsStore": {"thingsSet": "2 things added."}} | ||||||||||||||||||||||||||||||||||||||
> > | updatePassword | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | things | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | updateMail | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de récupérer tous les objets pour une catégorie donnée. category est un argument obligatoire. Il peut contenir une liste de noms de catégories que l'on veut récupérer, séparé par le caractère , . L'identifiant de chaque objet est un mis à l'intérieur de l'objet qui a été donné lors de l'ajout. Voici un exemple de résultat, si on demande 2 catégories ( test-cat et prefs ) :
{"cdsStore": { | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat :
updateRole | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | "test-cat": {
"v": "c",
"id": "id1"
},
"prefs": [
{
| ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Comme pour les tables, lorsque la catégorie ne contient qu'une seule entrée, c'est un objet. S'il y a plusieurs entrées, c'est un tableau qui est récupéré. | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | updateStatus | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | La valeur d'un objet peut être un tableau. Par contre, il y a 2 restrictions. À l'intérieur d'un tableau, il faut des valeurs simples (pas de tableau ou un nouvel objet). Si le tableau ne contient qu'une seule valeur, alors cette valeur est renvoyée comme une valeur simple, et pas comme un tableau à une seule valeur. | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | updatePreferences | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | deleteThing | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | setDeleteAllowed | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Cette commande permet de supprimer un objet. Les paramètres category et id sont obligatoires. Voici un exemple de résultat rendu :
{"cdsStore": {"thingDeleted": { | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat :
users | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < | "id": "id1", "category": "prefs" }}} | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | upload | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | getUser | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Permet l'upload d'une VOTable. Le format du fichier d'entrée est automatiquement détecté, en utilisant la librairie STIL. | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Added: | |||||||||||||||||||||||||||||||||||||||
> > | isXmatchMail | ||||||||||||||||||||||||||||||||||||||
Changed: | |||||||||||||||||||||||||||||||||||||||
< < | Les paramètres optionnels sont comment et origin . La valeur par défaut de origin est Upload . La valeur de comment , si présente, est stockée dans les métadonnées. | ||||||||||||||||||||||||||||||||||||||
> > | Exemple de résultat : | ||||||||||||||||||||||||||||||||||||||
Deleted: | |||||||||||||||||||||||||||||||||||||||
< < |
4 caractères sont interdits dans les noms des fichiers : / , & , < et , . Ces 4 caractères sont remplacés par un _ au moment du upload.
uploadFromUrlPermet l'upload d'un catalogue, en donnant l'URL depuis laquelle obtenir le catalogue. Les paramètres obligatoires sonturl et filename . Le code est le même que pour la commande upload . Il y a donc les mêmes paramètres optionnels, et les mêmes transformations concernant d'éventuels caractères interdits.
Le résultat a le format :
{"cdsStore": {"uploadFromUrl": "ok"}}Et en cas d'erreur : {"cdsStore": {"error": "Error while uploading from url: http://cdsarc.u-strasbg.fr/viz-bin/vizgraph= =?-s=I/337&-i=.graph_sql&Source=4659456740670442752&file=fov.dat&--output=votable"}} | ||||||||||||||||||||||||||||||||||||||
-- PascalWassong - 2017-01-10 |
API du serveur CDSLoginInternal
Paramètres communs à tous les points d'entréeCi-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :commandC'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.formatLe format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut estxml . Le seul autre format reconnu est json .
Commandes reconnuesloginusernamedatapreferencesprettynamescreateuseractivateaskfornewpasswordresetpasswordcreateanonymousupdatepasswordupdatemailupdateroleupdatestatusupdatepreferencessetdeleteallowedusersgetuserisxmatchmailtablesCette commande permet de récupérer la liste de toutes les VOTable que l'utilisateur a uploadé. Voici un exemple de réponse au format json.{"cdsStore": {"tables": [ { "date": "1473263765224", "fileName": "A2744CL-1", "metadata": { "coordinates": { "decUnit": "deg", "dec": "DEC", "raUnit": "deg", "errorType": "noError", "ra": "RA" }, "comment": "bla bla bla" }, "size": "6018", "nbRows": "1" }, { "date": "1474374997438", "fileName": "csv-with-header.csv", "metadata": { "coordinates": {}, "comment": "csv hide" }, "size": "941", "nbRows": "3" } ]}}S'il n'y a qu'une seule table, la valeur de tables n'est pas un tableau, mais un objet. Voici un exemple :
{"cdsStore": {"tables": { "date": "1474374997438", "fileName": "csv-with-header.csv", "metadata": { "coordinates": {}, "comment": "csv hide" }, "size": "941", "nbRows": "3" }}}S'il n'y a aucune table, un objet vide est rendu : {"cdsStore": {}}Dans le navigateur, pour obtenir systématiquement un tableau, vous pouvez écrire : [].concat(cdsStore.tables);L'objet coordinates existent toujours dans les métadatas, même s'il est vide. Cf l'exemple ci-dessus concernant le fichier csv-with-header.csv .
deleteTablesCette commande permet de supprimer une table qui a été uploadé. La commande prend un seul argument,tables , qui contient la liste des noms des tables à supprimer, séparées par des slash ( / ).Ce caractère fait parti des caractères qui ne peuvent pas être dans le nom d'un fichier. Voir les commandes upload , uploadFromUrl et rename
La valeur rendue par la commande est toujours la suivante, même si on a demandé la suppression d'une table inexistante.
{"cdsStore": {}} downloadTableCette commande permet de récupérer une table. Cette commande utilise l'argument généraloutputFormat . Le paramètre filename est obligatoire, et donne le nom du fichier à récupérer. En sortie, on récupère la VOTable dans le format qui a été spécifié par outputFormat .
updateTableCommentCette commande permet de modifier le commentaire associé à une table. Le commentaire est stocké dans les métadonnées qui sont renvoyées lorsqu'on récupère la liste de toutes les tables. Les arguments sontfilename et comment . Ils sont obligatoires.
En résultat, la commande renvoie dans l'objet cdsPortal , un sous objet nommé commentUpdated , qui a comme valeur le nouveau commentaire.
updateCoordinatesMetadataCette commande permet de mettre à jour les informations sur les colonnes RA et DEC de la VOTable, ainsi que sur les colonnes d'erreurs associées. La liste des paramètres reconnus est
tableMetadataCette commande permet de récupérer les informations concernant les colonnes d'une table. Le paramètrefilename , indiquant pour quelle VOTable on veut le résultat, est obligatoire. Le résultat donne la liste de toutes les colonnes de la table, avec l'ucd de la colonne. Un exemple de résultat :
{"cdsStore": {"columns": [ { "ucd": "meta.id;meta.main", "name": "ID" }, { "ucd": "pos.eq.ra;meta.main", "name": "RA" }, { "ucd": "pos.eq.dec;meta.main", "name": "DEC" }, { "ucd": "phot.mag;em.opt.B", "name": "MAG_B435" }, { "ucd": "phot.mag;em.opt.V", "name": "MAG_V606" }, { "ucd": "stat.error;phot.mag;em.opt.B", "name": "MAGERR_B435" }, { "ucd": "stat.error;phot.mag;em.opt.V", "name": "MAGERR_V606" } ]}}Tout comme pour les tables, s'il n'y a qu'une seule colonne, la valeur de columns est un objet, pas un tableau.
renameCette commande permet de renommer un fichier. Les paramètres obligatoires (forcément en minuscule) sont :filename : le nom actuel du fichier. Le nom est transformé, s'il contient des caractères interdits. Voir la commande upload pour plus de détails.
newname : le nouveau nom du fichier. Il ne faut pas qu'un autre fichier avec le nouveau nom existe, sinon une erreur est rendue.
En cas de succès, le résultat est :
{"cdsStore": {"rename": "ok"}} addThingCette commande permet d'ajouter un objet JSON. Le contenu de l'objet est absolument libre. Les paramètres obligatoires sont :category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie.
id : un identifiant unique de l'objet, pour la catégorie en question. 2 catégories différentes peuvent contenir le même id.
value : la valeur de l'objet. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. L'ensemble de l'objet est sauvé, sans que le serveur regarde le contenu. La seule exception est la valeur de id . Lorsqu'on récupère une liste d'objets, cette valeur sera écrasée par l'identifiant donné par le paramètre id . La longueur maximum de la chaîne de caractères de la valeur est limitée. La limite actuelle est 2048 octets.
maxThings : ce paramètre optionnel indique le nombre maximum d'objets à garder dans cette catégorie. Si la limite est dépassée avec le nouveau objet qu'on ajoute, les plus anciens objets sont supprimés.
setThingsCette commande remplace complètement tous les objets d'une catégorie par le ou les nouveaux objets passés avec la commande. Les paramètres obligatoires sont :category : la category dans laquelle l'objet sera rangé. Le caractère virgule , est interdit dans le nom de la categorie.
value : la liste des nouveaux objets à stocker. C'est une chaîne de caractères qui doit contenir un objet json correctement formaté. Voici un exemple de format :
value={id10:{p33: v3, p44:v4},id11:{p1:v1}}La commande renvoie le nombre d'objets ajoutés : {"cdsStore": {"thingsSet": "2 things added."}} thingsCette commande permet de récupérer tous les objets pour une catégorie donnée.category est un argument obligatoire. Il peut contenir une liste de noms de catégories que l'on veut récupérer, séparé par le caractère , . L'identifiant de chaque objet est un mis à l'intérieur de l'objet qui a été donné lors de l'ajout. Voici un exemple de résultat, si on demande 2 catégories ( test-cat et prefs ) :
{"cdsStore": { "test-cat": { "v": "c", "id": "id1" }, "prefs": [ { "p1": "v1", "p2": "v2", "id": "id1" }, { "p3": "v3", "p4": "v4", "id": "identifier" } ] }}Comme pour les tables, lorsque la catégorie ne contient qu'une seule entrée, c'est un objet. S'il y a plusieurs entrées, c'est un tableau qui est récupéré. La valeur d'un objet peut être un tableau. Par contre, il y a 2 restrictions. À l'intérieur d'un tableau, il faut des valeurs simples (pas de tableau ou un nouvel objet). Si le tableau ne contient qu'une seule valeur, alors cette valeur est renvoyée comme une valeur simple, et pas comme un tableau à une seule valeur. deleteThingCette commande permet de supprimer un objet. Les paramètrescategory et id sont obligatoires. Voici un exemple de résultat rendu :
{"cdsStore": {"thingDeleted": { "id": "id1", "category": "prefs" }}} uploadPermet l'upload d'une VOTable. Le format du fichier d'entrée est automatiquement détecté, en utilisant la librairie STIL. Les paramètres optionnels sontcomment et origin . La valeur par défaut de origin est Upload . La valeur de comment , si présente, est stockée dans les métadonnées.
4 caractères sont interdits dans les noms des fichiers : / , & , < et , . Ces 4 caractères sont remplacés par un _ au moment du upload.
uploadFromUrlPermet l'upload d'un catalogue, en donnant l'URL depuis laquelle obtenir le catalogue. Les paramètres obligatoires sonturl et filename . Le code est le même que pour la commande upload . Il y a donc les mêmes paramètres optionnels, et les mêmes transformations concernant d'éventuels caractères interdits.
Le résultat a le format :
{"cdsStore": {"uploadFromUrl": "ok"}}Et en cas d'erreur : {"cdsStore": {"error": "Error while uploading from url: http://cdsarc.u-strasbg.fr/viz-bin/vizgraph= =?-s=I/337&-i=.graph_sql&Source=4659456740670442752&file=fov.dat&--output=votable"}}-- PascalWassong - 2017-01-10 |