All'ultimo DrupalCon ho visto una sessione su Services: Drupal as a web services platform using the Services module - interessante per i miei scopi.
Uno dei problemi da affrontare per un sito intranet (usando Big D) era come integrarlo con altri applicativi dell'azienda - soprattutto con il meccanismo di gestione utenti - in questo caso controllato da un gestionale con interfaccia web.
Il problema è che non voglio che il manager aziendale devi creare (o modificare) un account sia sul gestionale che sul intranet. La soluzione era di usare Servces, in modo che il gestionale può 'pilotare' la creazione o aggiornamento degli utenti programmaticamente.
A questo scopo - e come banco di prova - ho creato un piccolo script command line che crea e modifica i ruoli di un utente. Questo basato su altri script esempio disponibile nel manualone di Drupal: http://drupal.org/node/585014#comment-2987512
Il gestionale accede al sito come forse un utente, con permessi di modificare utenti, e usando lo stesso meccanismo di credenziali di tutti gli altri utenti: identificatore di sessione, login, operazioni di modifica, logout.
John, ho trovato il tuo commento proprio l'altro giorno su Drupal.org. Il tuo codice fa esattamente quello che serviva anche a me!
Grazie!
(ora mi resta da farlo andare con content profile)
se riesco posto qui la modifica.
ciao!
Mario
Mario Vercellotti (Vermario)
Freelance
http://www.verdevelop.com
Ciao Mario,
Dato che stiamo 'collaborando' ;-) io invece devo aggiungere una funzione per trovare un certo utente...
Qualche osservazione che non avevo messo su d.o:
user.save
usa le funzioni _validate e _submit, quindi (credo) tutto dev'essere una stringha. Non sta settando timezone probabilmente perchè setto 7200 comeint
, mi sa che devo metterestring
. Però funzione 'status' comeint
, ma credo perchè viene convertito in boolean da PHP. Non ho osato provareboolean
user.get
è abbastanza inutile IMHO, meglio per nome utente o e-mail. Non voglio che l'app esterno deve sapere l'uid del utente a priori.user.get
ma con parametro string per il nome o e-mail, devo trovare un altro nome,user.getby
probabilmente.Ho sollevato certi questi dubbi (sto imparando ;-) nel gruppo Services, vedi http://groups.drupal.org/node/70628 e http://groups.drupal.org/node/70638 Ovviamente se sei disponibile a dare una mano per i patch...
Allora uno dei maintainers mi ha chiesto di creare degli issues, quindi:
user.load
: http://drupal.org/node/806918Se hai tempo di darlo un occhiata, magari migliorarlo...
John
Più imparo, più dubito.