Introduction
Ici on discute de la manière d'implémenter les droits d'accès dans SweetWiki.
Utilisateurs, groupes, rôles et actions
Inspiration première : la manière dont DekiWiki gère les droits. Dans la partie admin, il y a un control panel qui permet de gérer des "Roles", un rôle étant associé à une action (cf screenshot ci-dessous). Il y a aussi la gestion des utilisateurs et des groupes, un groupe pouvant se composer d'une liste d'utilisateurs et/ou d'autres groupes. Un utilisateur ou un groupe a un role par défaut.

After long discussion, we create our dependence own between "roles" and "action":
.png)
Spécification des droits pour une resource
Dans DekiWiki, pour chaque page, on spécifie son accès "public, semi-public ou privé", et pour les deux derniers cas, on donne la liste des utilisateurs et/ou des groupes qui ont le droit de modifier ou de voir et modifier.
.jpg)
Ontologies proposées et exemples d'annotation pour SweetWiki
Nous proposons d'étendre l'ontologie du wiki et d'utiliser conjointement une ontologie intitulée provisoirement amo_ont (Access Management Ontology).
Nous supposons que les home page de SweetWiki contiennent un profil FOAF dédié à SweetWiki (qui pourra être référencé par un profil FOAF "global", un peu à la manière d'Adil qui a des profils FOAF légers/dédiés sur lastfm, etc... et un gros profil FOAF sur un URL de l'inria).
Example home page of user
/div[4]/div/pre, reference to undefined name 'syntax'
Exemple de page annotée pour spécifier un accès restreint
Ici, la page a un accès privé, accessible et modifiable par Ania et le groupe des admins.
/div[4]/div[2]/pre, reference to undefined name 'syntax'
Example annotation groupe of admins
/div[4]/div[3]/pre, reference to undefined name 'syntax'
Ontology
/div[4]/div[4]/pre, reference to undefined name 'syntax'
SPARQL Requests examples
Example 1.
using all files
Query :
prefix amo: <http://sweetwiki.inria.fr/AMO_ontology.rdfs#>
select ?resource ?agent where {
?agent amo:hasAuthorizedActionOnResource ?auth_action_on_res.
?auth_action_on_res amo:hasResource ?resource
?auth_action_on_res amo:hasActionOnResource amo:DeleteContent
}
Result :
/div[5]/div/pre[2], reference to undefined name 'syntax'
Example 2
using all files
Query:
prefix amo: <http://sweetwiki.inria.fr/AMO_ontology.rdfs#>
select ?agent ?action where
{
?agent amo:hasAuthorizedActionOnResource ?auth_act.
?auth_act amo:hasActionOnResource ?action.
?auth_act amo:hasResource amo:PageBy_AnnaKolomoiska
}
order by ?agent
Result:
/div[5]/div[2]/pre[2], reference to undefined name 'syntax'Discussions et questions
- Au lieu de définir les groupes et les rôles par défaut : utiliser des règles OWL lite ?
- Utilisation de SIOC:user ou sioc:user_groups_of au lieu de foaf:agent
- Problème de sécurité, ne pas indiquer à quels groupes les personnes appartiennent dans le home page, mais dans des annotations non accessibles de l'extérieur,
- Utiliser SIOC types qui définit déjà ce qu'est un contributeur, un guest, un admin ? Soucis : SIOC Types a l'air non fini et surtout ces rôles sont au niveau du "site" et mal définis...