Author: mfortun Date: 2011-05-02 16:52:21 +0200 (Mon, 02 May 2011) New Revision: 854 Url: http://nuiton.org/repositories/revision/wikitty/854 Log: * correct analyse * add specifications for the site publication part of wikitty publication Added: trunk/wikitty-publication/src/site/rst/site-publication.rst Modified: trunk/wikitty-publication/src/site/rst/wp-analyse.rst Added: trunk/wikitty-publication/src/site/rst/site-publication.rst =================================================================== --- trunk/wikitty-publication/src/site/rst/site-publication.rst (rev 0) +++ trunk/wikitty-publication/src/site/rst/site-publication.rst 2011-05-02 14:52:21 UTC (rev 854) @@ -0,0 +1,128 @@ +Spécifications wikitty publication site +======================================= +:Authors: Manoël Fortun + + +Contexte, Intérêt +***************** + +Wikitty publication permet de construire une application et de la stocker dans +un wikitty, ensuite via l'interface web de wikitty publication l'application +peut s'éxécuter. Actuellement cette partie de publication permet de "publier" +des pages qui contiennent du javascript et wikitty publication permet +leur affichage et exécution des javascript. + +Le travail sur cette partie de wikitty publication consiste donc à compléter +les fonctionnalités existantes, corriger les bugs présents, et enrichir +le nombre de langage supportés à l'interprétation. + + +Fonctionnalités +*************** + +Login/logout +------------ + +L'interface web doit pouvoir gérer un système de login avec sauvegarde +de cookie pour la navigation. Le token de sécurité sera contenu dans le +cookie. En cas de succès si dans les arguments on retrouve les actions +à faire on les faits sinon on affiche simplement le résultat. + +L'action à éxécuter en cas d'erreur du login ou du logout, ne doit pas +se retrouver dans l'url. Ce doit être paramètrable dans un fichier de propriété. + + /login?login=moi&password=xxxx&succes=/eval/Wiki/WikiHello + +Si on a l'argument logout de présent dans les paramètres alors un +logout est forcé. Par défaut si on demande un login et que +l'utilisateur était déjà loggué alors un logout est aussi fait avant +la nouvelle authentification. + + /login?logout&succes=/eval/Wiki/WikiHello + +Il faudra demander à l'utilisateur de se loguer si l'action qu'il essaye +d'entreprendre à besoin de droits. On pourra alors se retrouver dans la +situation ou l'action à éxécuter après le login se trouve dans l'url. + + + +Gestion des droits +------------------ + +En sus d'une gestion d'authentification, il faudrait mettre en place un système +permettant de gérer des droits utilisateurs sur les différents wikitty +stocker au sein de wikitty publication, ainsi que les actions qu'un utilisateur +peut faire sur un wikitty. + +Une solution envisageable est la création d'un objet wikitty, qui autoriserait +des actions nommés à sur des wikittys d'un certain label, cet objet wikitty +posséderais aussi un label, permettant de définir les droits sur cet objet +et donc qui pourrait modifier ces droits. Cet objet wikitty posséderait un +wikittyGroup qui lui même posséderait des wikittyUsers ou directement des +wikittyUser. + +* WikittyAuth + * users: WikittyGroup //groupe des users possédant les droits + * target: WikittyLabel //les labels concerné par les droit + * action: Collection // action autorisé par ce droit + * label:String // le label permettant de déterminer qui à les droit sur + // ce wikitty + +On pourrait même penser à la possibilité de sync de ces wikitty avec la partie +synchronisation de wikitty publication, et donc les transmettrent à un autre +wikitty service. + +La vérification de la légitimité d'une action d'un user se ferais en +recherchant le wikittyAuth qui autorise l'action sur le lable concerné +et vérifier si l'utilisateur appartiens au groupe concerné. + +Le fait de mettre un label sur le wikittyAuth permet de créer plusieurs +classes de droit et d'utilisateur. On pourra avoir le "super" droit +donc le label target serait "." le "père" de tout les labels, dont le label +serait aussi ".". + +Celà permettra la gestion des droits par récursion sur les labels. + +Gestion multicontexte +--------------------- + +Les applications que wikitty publication va pouvoir éxécuter peuvent être +amené à manipuler des donnés, il doit être possible de définir que les +données manipulée soit stocker dans un autre wikitty service. + +La solution pourrait être un nouvel objet de type wikitty définissant +que pour les applications possédant un certain label, les données +devront être stocké sur un autre wikitty service. + +On pourrait avoir cette objet qui contiendrais un wikitty label, un attribut +avec l'adresse du wikitty service pour les datas. + +Et les données de toutes les applications sous ces labels seront sur le wikitty +service désigné. + +* WikittyContexteHandler + * wikittyServiceDataUrl: String // adresse du wikitty pour les données + * labels: WikittyLabel // label concernés + +Il est possible que se baser sur les labels soit une entreprise périlleuse, +mais celà permettrais de donner une seconde utilité, en plus de celle permettant +de déterminer le path d'un fichier. + +Il sera nécessaire qu'au plus un wikittyContexteHandler existe pour un label +donné, sinon le problème de quels wikittyService utiliser pour les données +sera indécidable. Par défaut si ce wikitty n'existe pas les données seront +manipulé sur le même wikitty service que l'application. + +L'avantage de stocker la configuration pour le "multicontexte" dans un objet +wikitty permet ensuite d'avoir l'information facilement et de exporter vers +un autre wikitty service avec la partie sync de wikitty publication si besoin. + + +Moteur de script +---------------- + +Ajouter plus de langage supporté à l'interprétation par wikitty publication, +en rajouter le plus possible, en fonction de ce qui est disponible pour java +en librairie libre. + + Modified: trunk/wikitty-publication/src/site/rst/wp-analyse.rst =================================================================== --- trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-04-30 12:23:38 UTC (rev 853) +++ trunk/wikitty-publication/src/site/rst/wp-analyse.rst 2011-05-02 14:52:21 UTC (rev 854) @@ -94,12 +94,14 @@ * name: String unique=true notNull=true * content: String multiline=true * mimetype: String + * extension: String * WikittyPubData: pour les contenues binaires * name: String unique=true notNull=true * content: Binary * mimetype: String + * extension: String Ensuite grâce à ces actions de bases on peut construire des applications complètement contenu dans le WikittyService (code, @@ -200,7 +202,7 @@ en même temps. Développement d'application -============================ +=========================== Le but est de pouvoir facilement développer des applications avec ces outils abituels (editor, svn, ...). Pour cela on utilise
participants (1)
-
mfortun@users.nuiton.org