REpresentational State Transfer
En fait, tout est REST1) REST 1 et se fait surtout en ligne de commande a? l'aide de curl.
D'apre?s un ancien tutoriel2)tutoriel 2 , voici quelques commandes (non teste?es ! mais il faudra ajouter le
referer si Server Protection Service est active?) :
...
| Bloc de code |
|---|
curl http://localhost:8080/sites/fun_with_sakai.members.json |
Plus re?cent (et teste?), script de cre?ation de compte pour l'utilisateur Paul, Create-Paul.sh 3
...
:
| Bloc de code |
|---|
\#\!/bin/sh
(curl \-d
"pwd=local_password&pwdConfirm=local_password&firstName=Paul&lastName=Erdos&:
name=paul&:sakai:profile-import={\"basic\": {\"elements\":
{\"firstName\":{\"value\": \"Paul\"}, \"lastName\": {\"value\": \"Erdos\"},
\"email\": {\"value\":\"erdos@example.edu\"}, \"college\": {\"value\":
\"Institute for Advanced Study\"}}}}" \
\--referer http://localhost:8080/dev/test.html \
http://admin:admin@localhost:8080/system/userManager/user.create.html \
>/dev/null 2>/dev/null \
&& echo Created paul ) \
\|\| echo ERROR creating paul
|
...
Vous avez oublie? votre mot de passe administrateur ? Tant pis pour vous, il n'existe pas de moyen de le récuperer.
Un utilisateur a oublie? son mot de passe ? Voyons ce qu'on peut faire...
| Bloc de code |
|---|
curl \-uadmin:motdepasseadmin \-FoldPwd=unused \-FnewPwd=nouveaupass |
...
\-FnewPwdConfirm=nouveaupass \ \ |
...
--referer [https://sakaioae.univ-valenciennes.fr/ |
...
] \[https://sakaioae.univ-valenciennes.fr/system/userManager/user/utilisateur.cha |
...
] ngePassword.html |
Gra?ce a? Curl, vous pouvez changer le mot de passe d'un utilisateur et si vous le faites a? partir d'un compte administrateur, vous n'avez pas a? fournir l'ancien mot de passe (qu'il a de toute fac?on malencontreusement oublie? !). Dans la ligne de commande, remplacez motdepasseadmin, nouveaupass et utilisateur. Il est ne?cessaire de fournir un parame?tre oldPwd me?me s'il n'est pas utilise?.
...
Sakai OAE fonctionne sur Apache Sling. Pour la gestion des utilisateurs et des groupes, basiquement la manipulation reste la me?me : http://sling.apache.org/site/managing-users-and-groups-jackrabbitusermanager.html![]()
Scripts actuellement disponibles
Cependant, il existe quelques scripts qui permettent de faire certaines ope?rations a? partir d'une console. Ils sont pluto?t conc?us pour des ope?rations de masse.
Ces scripts e?taient initialement e?crits en Perl4) Perl 4 mais ont e?te? remplace?s par des scripts Ruby
Ils constituent une bibliothe?que cliente REST et sont stocke?s dans testscripts/SlingRuby/ de
votre re?pertoire Nakumura.
Pour pouvoir les utiliser, il faudra bien entendu un environnement d'exe?cution Ruby fonctionnel ainsi que les de?pendances ne?cessaires pour ces scripts.
...
Notes d'installation sur Debian Squeeze :
...
L'interpreL’interpre?teur Ruby et de son « gestionnaire de paquet » sont indispensables :
| Bloc de code |
|---|
apt-get install ruby rubygems |
Pour Ruby, installez bundle avec
| Bloc de code |
|---|
gem install bundle |
Acce?dez au re?pertoire contenant les scripts Ruby, situe? dans Nakamura
| Bloc de code |
|---|
cd testscripts/SlingRuby |
Pour ma part, j'ai j’ai du rajouter certaines bibliothe?ques qui n'en’e?taient pas installe?es sur ma machine
| Bloc de code |
|---|
apt-get install libxml2-dev libxslt-dev libmagick-dev libmagickwand-dev |
Sous Debian Squeeze, j'ai j’ai eu besoin d'ajouter d’ajouter le chemin des binaires (a? adapter) au PATH pour qu'il qu’il puisse trouver bundle
| Bloc de code |
|---|
export PATH=$PATH:/var/lib/gems/1.8/bin |
Installez les de?pendances des scripts avec
| Bloc de code |
|---|
bundle install |
Si les scripts Ruby ne fonctionnent pas (erreur 400 notamment), assurez-vous d'avoir d’avoir localhost sur le bon port de?fini comme Trusted Host dans Configuration puis Sakai Nakamura :: Server Protection Service.
Wishlist (non exhaustive)
Ceci dit, la console est puissante mais n'est pas toujours tre?s convivial et encore moins pour les personnes ne la mai?trisant pas. C'est pourquoi parmi les fonctions qu'on aimerait voir, a? partir d'un compte administrateur, il serait bien d'avoir en priorite? :
Groupes/Cours/Projet de recherche
? Vue d'ensemble dans une interface administrateur
? Edition/Suppression des commentaires (du Widget Comment stream) OK, de?ja? fait
? Edition/Suppression groupes
? Gestion participants (Ajout/Suppression)
Membres
? Vue d'ensemble dans une interface administrateur
? Edition informations profil
? Modification mot de passe
Ressources (documents)
? Vue d'ensemble dans une interface administrateur
? Edition ? (au moins pour le nom ce serait bien)
? Suppression
? Edition/Suppression des commentaires
?
Autres
? Gestion des permissions (ACL) pour les ressources/groupes ?
? Une fonction de notification vers l'administrateur/mode?rateurs pour des documents (voire
commentaires) inapproprie?s ?
1) REST ? Explication dans la partie "HTTP “HTTP Spoken Here" Here” -https://confluence.sakaiproject.org/display/KERNDOC/Your+First+Day+With+Sakai+Nakamura#Yo![]()
urFirstDayWithSakaiNakamura-HTTPSpokenHere
2)https://confluence.sakaiproject.org/display/KERNDOC/Your+First+Day+With+Sakai+Nakamura#Yo
urFirstDayWithSakaiNakamuraNakamura#YourFirstDayWithSakaiNakamura-CreatingSakaiUsersGroupsandSites
3) "Sakai “Sakai OAE Deployment and Management"Management”, chapitre 5, page 76
4)https://confluence.sakaiproject.org/display/KERNDOC/275+-+Administration![]()