Example #1
0
 public function scanForPermission()
 {
     $p = new Page();
     $permissions = array();
     self::scanPermission($p->get_declared_pages(), $permissions);
     $permissions = array_unique($permissions);
     asort($permissions);
     $real_permissions = array_values($permissions);
     $saved_permission = array();
     $sp = PermissionObject::loadAll();
     $permissions = array();
     foreach ($saved_permission as $t) {
         $saved_permission[$t->permission_name] = $t->pid;
     }
     foreach ($real_permissions as $p) {
         $permissions[] = $p;
         $d = new PermissionObject();
         $d->loadByName($p);
         $d->permission_name = $p;
         if (isset($saved_permission[$p])) {
             unset($saved_permission[$p]);
         }
         $d->save();
     }
     foreach ($saved_permission as $k => $t) {
         $p = new PermissionObject();
         $p->load($t);
         $p->delete();
     }
     return $permissions;
 }