Example #1
0
         // Dump specific directories
         if ($entry != "." && $entry != "..") {
             $module = $entry;
             // Exceptions
             if ($module != 'login') {
                 // Get Module Pages
                 $pages = Core_Reflection::getModulePublicPages($module);
                 if (!empty($pages)) {
                     // Create Page Access Permission
                     foreach ($pages as $value) {
                         $id = $rbac->Permissions->add($value['page'], $value['description']);
                         $perms[$module][] = $id;
                     }
                 }
                 // Get Public Methods
                 $methods = Core_Reflection::getControllerPublicMethods($module);
                 if (!empty($methods)) {
                     // Create Method Permission
                     foreach ($methods as $key => $value) {
                         $id = $rbac->Permissions->add($value['method'], $value['description']);
                         $perms[$module][] = $id;
                     }
                 }
             }
         }
     }
     closedir($handle);
 }
 // Create Default Roles
 $apiRoleId = $rbac->Roles->add('api', 'API User');
 $adminRoleId = $rbac->Roles->add('admin', 'System Administrator');
Example #2
0
 public static function resolveAPIRequest($module, $url, $http_method)
 {
     $request_method = array();
     if (!in_array($module, Core_API::$restricted_modules)) {
         // Get Public Methods
         $methods = Core_Reflection::getControllerPublicMethods($module);
         if (!empty($methods)) {
             $api_schema = array();
             foreach ($methods as $key => $value) {
                 list($module, $method) = explode(".", $value['method']);
                 $module = strtolower($module);
                 $reflectedMethod = Core_Reflection::getControllerMethod($module, $method);
                 // The ending slash of a collection is always omitted
                 // when the resource is called.
                 // We delete the ending slash if any in order to avoid bad resolution
                 // in the next step (#Resolve).
                 if (substr($reflectedMethod['resource'], -1) == '/') {
                     $reflectedMethod['resource'] = substr($reflectedMethod['resource'], 0, -1);
                 }
                 $api_schema[$reflectedMethod['resource']][$reflectedMethod['name']] = array($reflectedMethod['id'] => $reflectedMethod['params']);
             }
         }
         // Get Resource
         $path = parse_url($url, PHP_URL_PATH);
         $resource = str_replace('/api/', '', $path);
         // #Resolve
         if (!empty($api_schema[$resource][$http_method])) {
             $resource = $api_schema[$resource][$http_method];
             foreach ($resource as $key => $value) {
                 $request_method['method'] = $key;
                 $request_method['args'] = $value;
             }
         }
     }
     return $request_method;
 }