iPédiatre
 Tout Classes Fichiers Fonctions Variables
roles.php
Aller à la documentation de ce fichier.
1 <?php
2 
3 $visitor[] = array('ModuleName'=>'ezjscore', 'FunctionName'=>'run');
4 $visitor[] = array('ModuleName'=>'user', 'FunctionName'=>'password');
5 $visitor[] = array('ModuleName'=>'user', 'FunctionName'=>'preferences');
6 $visitor[] = array('ModuleName'=>'content', 'FunctionName'=>'read', 'limitations'=>array('Class'=>array('user'), 'Section'=>array('Users')));
7 
8 $member[] = array('ModuleName'=>'content', 'FunctionName'=>'read', 'limitations'=>array('Class'=>array('user'), 'Section'=>array('Users')));
9 $member[] = array('ModuleName'=>'content', 'FunctionName'=>'edit', 'limitations'=>array('Class'=>array('user'), 'Section'=>array('Users')));
10 
11 $creator[0]['ModuleName'] = 'content';
12 $creator[0]['FunctionName'] = 'create';
13 $creator[0]['limitations'] = array('Class'=>array('article'), 'Section'=>array('Standard','Users'));
14 
15 $creator[1]['ModuleName'] = 'content';
16 $creator[1]['FunctionName'] = 'edit';
17 $creator[1]['limitations'] = array('Class'=>array('article'), 'Section'=>array('Standard','Users')); // manque Owner( Self )
18 
19 $delegate[0]['ModuleName'] = 'pediatrician';
20 $delegate[0]['FunctionName'] = 'login';
21 
22 $delegate[1]['ModuleName'] = 'registration';
23 $delegate[1]['FunctionName'] = 'register';
24 
25 $delegate[2]['ModuleName'] = 'user';
26 $delegate[2]['FunctionName'] = 'login';
27 
28 $maman[0]['ModuleName'] = 'content';
29 $maman[0]['FunctionName'] = 'read';
30 $maman[0]['limitations'] = array('Class'=>array('article'));
31 
32 $maman[1]['ModuleName'] = 'content';
33 $maman[1]['FunctionName'] = 'read';
34 $maman[1]['limitations'] = array('Class'=>array('folder'), 'Section'=>array('Standard'));
35 
36 $pediatrician[0]['ModuleName'] = 'content';
37 $pediatrician[0]['FunctionName'] = 'create';
38 $pediatrician[0]['limitations'] = array('Class'=>array('article'), 'Section'=>array('Standard','Users'));
39 
40 $pediatrician[1]['ModuleName'] = 'ip';
41 $pediatrician[1]['FunctionName'] = 'publish';
42 
43 $pediatrician[2]['ModuleName'] = 'ezjscore';
44 $pediatrician[2]['FunctionName'] = 'call';
45 
46 $pediatrician[3]['ModuleName'] = 'content';
47 $pediatrician[3]['FunctionName'] = 'manage_locations';
48 
49 $pediatrician[4]['ModuleName'] = 'user';
50 $pediatrician[4]['FunctionName'] = 'selfedit';
51 
52 $pediatrician[5]['ModuleName'] = 'content';
53 $pediatrician[5]['FunctionName'] = 'remove';
54 $pediatrician[5]['limitations'] = array('Class'=>array('article')); // manque owner( Self )
55 
56 $pediatrician[6]['ModuleName'] = 'ezjscore';
57 $pediatrician[6]['FunctionName'] = 'run';
58 
59 $pediatrician[7]['ModuleName'] = 'user';
60 $pediatrician[7]['FunctionName'] = 'login';
61 
62 $pediatrician[8]['ModuleName'] = 'content';
63 $pediatrician[8]['FunctionName'] = 'read';
64 $pediatrician[8]['limitations'] = array('Class'=>array('article', 'folder', 'user'), 'Section'=>array('Standard', 'Users'));
65 
66 $publisher[0]['ModuleName'] = 'content';
67 $publisher[0]['FunctionName'] = 'move';
68 
69 $publisher[1]['ModuleName'] = 'ezoe';
70 $publisher[1]['FunctionName'] = 'editor';
71 
72 $limitPublisher = array('Class'=>array('article'), 'Section'=>array('Standard'));
73 
74 $publisher[2]['ModuleName'] = 'content';
75 $publisher[2]['FunctionName'] = 'versionread';
76 $publisher[2]['limitations'] = $limitPublisher;
77 
78 $publisher[3]['ModuleName'] = 'content';
79 $publisher[3]['FunctionName'] = 'remove';
80 $publisher[3]['limitations'] = $limitPublisher;
81 
82 $publisher[4]['ModuleName'] = 'content';
83 $publisher[4]['FunctionName'] = 'manage_locations';
84 $publisher[4]['limitations'] = $limitPublisher;
85 
86 $publisher[5]['ModuleName'] = 'user';
87 $publisher[5]['FunctionName'] = 'login';
88 $publisher[5]['limitations'] = array('SiteAccess' => 'private');
89 
90 $roles = array('Visitor'=> $visitor, 'Member'=>$member, 'Content chooser'=>array(), 'Publisher'=>$publisher, 'Content creator front'=>$creator, 'Delegate'=>$delegate, 'Maman'=>$maman,'Pediatrician'=>$pediatrician);
91 
93 $db = eZDB::instance();
94 $db->begin();
95 
96 foreach ($roles as $roleName => $policies) {
97 
99  $originalRole = eZRole::createNew();
100  $temporaryRole = $originalRole->createTemporaryVersion();
101 
102  $temporaryRole->setAttribute( 'name' , $roleName );
103  $temporaryRole->store();
104  $originalRole->revertFromTemporaryVersion();
106 
107  foreach ($policies as $policy) {
108 
109  $policyObject = eZPolicy::createNew($originalRole->attribute('id'), array('ModuleName'=>$policy['ModuleName'],
110  'FunctionName'=>$policy['FunctionName']));
111 
112  foreach ($policy['limitations'] as $identifier => $values) {
113 
114  $limitationObject = eZPolicyLimitation::createNew($policyObject->attribute('id'), $identifier);
115 
116  foreach ($values as $value) {
117 
118  switch ($identifier) {
119 
120  case 'ParentClass':
121  case 'Class':
122  $value = eZContentClass::fetchByIdentifier($value)->attribute('id');
123  break;
124 
125  case 'SiteAccess':
126  $value = eZSys::ezcrc32($value);
127  break;
128 
129  case 'Section':
130  $sections = eZSection::fetchFilteredList( array( 'name' => $value ), false, false, true );
131  $value = $sections[0]->attribute('id');
132  break;
133 
134  case 'Subtree':
135  case 'Node':
136  case 'Language':
137  case 'ParentDepth':
138  break;
139 
140  default: throw new Exception('Limitation de permission inconnue: ' . $identifier);
141  }
142  eZPolicyLimitationValue::createNew($limitationObject->attribute('id'), $value);
143  }
144  $roles[] = $originalRole;
145  }
146  }
147 }
148 $db->commit();
149 
150 
151 $visitor = eZRole::fetchByName('Visitor');
152 $users = eZContentObjectTreeNode::fetchByURLPath('u');
153 $visitor->assignToUser($users->object()->attribute('id'));