// 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');
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; }