3. La gestion des permissions

Si vous réalisez un programme et que vous avez besoin de donner la permission à certains utilisateurs d'effectuer une action, et pas à d'autres, vous devez implémenter un système d'autentification associé à un système de permissions. Souvent, les permissions du système de fichiers Unix suffisent amplement à cela, en interdisant par exemple l'exécution du programme sauf pour un groupe d'utilisateurs. Si vous écrivez un programme qui doit avoir un système de permissions différent de celui du système fourni par Unix via les comptes, voici une méthode simple à mettre en place, qui nous servira d'exemple. Au lieu d'avoir un fichier plat contenant la liste des utilisateurs et ce qu'ils ont le droit de faire, un fichier XML contiendra ces informations. Voici un exemple d'un tel fichier XML:

 1 <?xml version="1.0" ?>
 2 <authorizations>
 3 	<group name="users">
 4 		<user>bob</user>
 5 		<user>rebecca</user>
 6 		<user>bic</user>
 7 		<user>bac</user>
 8 	</group>
 9 	<group name="admins">
10 		<user>arkana</user>
11 		<user>spartakus</user>
12 	</group>
13 	<group name="super-admins">
14 		<user>shagshag</user>
15 	</group>
16 	<action name="conduire" object="shagshag">
17 		<authorization grantedto="admins" />
18 		<authorization grantedto="super-admin"/>
19 	</action>
20 	<action name="regarder" object="shagma">
21 		<authorization grantedto="users" />
22 		<authorization grantedto="admins" />
23 		<authorization grantedto="super-admin"/>
24 	</action>
25 </authorizations>

Ce document XML a une structure relativement simple à comprendre, et vous voyez tout de suite son principe:

Appelez ce fichier permissions.xml par exemple.

création est mise à disposition sous un contrat Creative Commons