client_service = $client_service; } /** * @param int $page_size * @param int $page_nbr * @return mixed */ public function getAll($page_size = 10, $page_nbr = 1) { DB::getPaginator()->setCurrentPage($page_nbr); return ResourceServer::paginate($page_size); } /** * @param IResourceServer $resource_server * @return void */ public function save(IResourceServer $resource_server) { $resource_server->Save(); } /** * sets resource server status (active/deactivated) * @param $resource_server_id id of resource server * @param bool $status status (active/non active) * @return void */ public function setStatus($resource_server_id, $status) { ResourceServer::find($resource_server_id)->update(array('active'=>$status)); } /** * deletes a resource server * @param $resource_server_id id of resource server * @return bool */ public function delete($resource_server_id) { $res = false; DB::transaction(function () use ($resource_server_id,&$res) { $resource_server = ResourceServer::find($resource_server_id); if(!is_null($resource_server)){ $client = $resource_server->client()->first(); if(!is_null($client)){ $this->client_service->deleteClientByIdentifier($client->id); } $resource_server->delete(); $res = true; } }); return $res; } /** * get a resource server by id * @param $resource_server_id id of resource server * @return IResourceServer */ public function get($resource_server_id) { return ResourceServer::find($resource_server_id); } /** Creates a new resource server instance * @param $host * @param $ip * @param $friendly_name * @param bool $active * @return IResourceServer */ public function addResourceServer($host, $ip, $friendly_name, $active) { $instance = null; if(is_string($active)){ $active = $active==='true'?true:false; } DB::transaction(function () use ($host, $ip, $friendly_name, $active, &$instance) { $instance = new ResourceServer( array( 'host' => $host, 'ip' => $ip, 'active' => $active, 'friendly_name' => $friendly_name ) ); $instance->Save(); // creates a new client for this brand new resource server $new_client = $this->client_service->addClient(IClient::ClientType_Confidential,null,$host.'.confidential.application',$friendly_name.' confidential oauth2 application'); $new_client->resource_server()->associate($instance); $new_client->Save(); }); return $instance; } /** * @param $resource_server_id * @return bool */ public function regenerateResourceServerClientSecret($resource_server_id){ $res = ''; DB::transaction(function () use ($resource_server_id,&$res) { $resource_server = ResourceServer::find($resource_server_id); if(!is_null($resource_server)){ $client = $resource_server->client()->first(); if(!is_null($client)){ $res = $this->client_service->regenerateClientSecret($client->id); } } }); return $res; } }