FuelPHP Bin
<?php namespace Users; class Controller_Permissions_Api extends \Controller_Hybrid { public function before(){ parent::before(); } public function get_all(){ $query = \Model\Auth_Permission::query(); return array_values($query->get()); } public function get_one($id){ return \Model\Auth_Permission::find($id)->to_array(); } public function get_user($id){ \Cache::delete_all('auth'); if(\Auth::has_access('users.dashboard["read"]')){ die(); } $user = Model_User::find($id); $permissions = $user->permissions; $user_array = $user->to_array(); $user_array['permissions'] = array(); foreach ($permissions as $key => $permission) { foreach ($user->userpermission as $key => $user_perm) { if($user_perm->perms_id == $permission->id){ $permission->access_actions = array(); foreach ($user_perm->actions as $action) { $permission->access_actions[] = $action[0]; } } } array_push($user_array['permissions'],$permission); } return $user_array; } public function post_user(){ $post = \Input::post(); $permission = current($post['selection'])['id']; $query = Model_User::find($post['userid']); $query->userpermission[$permission] = \Model\Auth_Userpermission::forge(array( 'user_id' => $post['userid'], 'perms_id' => $permission, 'actions' => array($post['actions']), )); if($query->save()){ \Cache::delete_all('auth'); } } public function get_role($id){ $role = \Model\Auth_Role::find($id); $permissions = $role->permissions; $role = $role->to_array(); $role['permissions'] = array(); foreach ($permissions as $key => $permission) { array_push($role['permissions'],$permission); } return $role; } public function delete_one($id){ $query = \Model\Auth_Permission::find($id); $query->delete(); } public function post_save(){ if(\Input::post('id')){ $query = \Model\Auth_Permission::find(\Input::post('id')); } else { $query = \Model\Auth_Permission::forge(); } $query->area = \Input::post('area'); $query->permission = \Input::post('permission'); $query->description = \Input::post('description'); $query->actions = \Input::post('actions'); $query->save(); } }