Now the basic user capabilities are working

This commit is contained in:
weryques 2017-12-18 10:52:45 -02:00
parent 33d4436ffe
commit 96aa29d61b
9 changed files with 106 additions and 41 deletions

View File

@ -133,9 +133,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function get_items_permissions_check($request){
if(current_user_can('read')){
return true;
}
return false;
}
/**
*
* @param WP_REST_Request $request
@ -143,9 +147,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function get_item_permissions_check($request){
if(current_user_can('read')){
return true;
}
return false;
}
/**
* Receive a JSON with the structure of a Collection and return, in case of success insert
* a Collection object in JSON
@ -184,9 +192,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function create_item_permissions_check( $request ) {
if(current_user_can('edit_posts')){
return true;
}
return false;
}
/**
* Prepare collection for insertion on database
*
@ -232,9 +244,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function delete_item_permissions_check( $request ) {
if(current_user_can('delete_posts')){
return true;
}
return false;
}
/**
* Update a collection
*
@ -255,9 +271,13 @@ class TAINACAN_REST_Collections_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function update_item_permissions_check( $request ) {
if(current_user_can('edit_posts')){
return true;
}
return false;
}
public function get_collection_params() {
$query_params = $this->collections_repository->get_map();

View File

@ -132,9 +132,13 @@ class TAINACAN_REST_Items_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function get_item_permissions_check( $request ) {
if(current_user_can('read')){
return true;
}
return false;
}
/**
* @param WP_REST_Request $request
*
@ -210,9 +214,13 @@ class TAINACAN_REST_Items_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function create_item_permissions_check( $request ) {
if(current_user_can('edit_posts')){
return true;
}
return false;
}
/**
* @param WP_REST_Request $request
*
@ -237,9 +245,13 @@ class TAINACAN_REST_Items_Controller extends WP_REST_Controller {
* @return bool|WP_Error
*/
public function delete_item_permissions_check( $request ) {
if(current_user_can('delete_posts')){
return true;
}
return false;
}
}
?>

View File

@ -160,9 +160,13 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
}
public function create_item_permissions_check( $request ) {
if(current_user_can('edit_posts')){
return true;
}
return false;
}
public function prepare_item_for_response( $item, $request ) {
$metadata_as_json = [];
@ -204,13 +208,21 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
}
public function get_item_permissions_check( $request ) {
if(current_user_can('read')){
return true;
}
return false;
}
public function get_items_permissions_check( $request ) {
if(current_user_can('read')){
return true;
}
return false;
}
public function get_collection_params() {
return parent::get_collection_params(); // TODO: Change the autogenerated stub
}
@ -227,7 +239,11 @@ class TAINACAN_REST_Metadata_Controller extends WP_REST_Controller {
}
public function delete_item_permissions_check( $request ) {
return parent::delete_item_permissions_check( $request ); // TODO: Change the autogenerated stub
if(current_user_can('delete_posts')){
return true;
}
return false;
}
}

View File

@ -203,6 +203,6 @@ class Logs extends Repository {
}
$msn = apply_filters('tainacan-insert-log-message-title', $msn, $type, $new_value);
Entities\Log::create($msn, '', $new_value, $value);
Entities\Log::create($msn, 'empty', $new_value, $value);
}
}

View File

@ -18,13 +18,26 @@ class TAINACAN_UnitApiTestCase extends TAINACAN_UnitTestCase {
* Default Tainacan Namespace
* @var string default '/tainacan/v2'
*/
protected $namespaced_route = '/tainacan/v2';
protected $namespace = '/tainacan/v2';
protected $user_id;
public function setUp(){
parent::setUp();
// Create a Administrator user for test api with cookie authentication
$this->user_id = $this->factory->user->create(
array(
'role' => 'administrator'
)
);
// Set that user as current user
wp_set_current_user( $this->user_id );
global $wp_rest_server;
$this->server = $wp_rest_server = new \WP_REST_Server;
do_action( 'rest_api_init' );
}
}

View File

@ -10,11 +10,11 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
public function test_register_route() {
$routes = $this->server->get_routes();
$this->assertArrayHasKey($this->namespaced_route, $routes );
$this->assertArrayHasKey($this->namespace, $routes );
}
public function test_endpoints() {
$the_route = $this->namespaced_route;
$the_route = $this->namespace;
$routes = $this->server->get_routes();
foreach( $routes as $route => $route_config ) {
if( 0 === strpos( $the_route, $route ) ) {
@ -30,15 +30,12 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
}
public function test_create_and_fetch_collection_by_id(){
$collection_JSON = json_encode([
'name' => 'TesteJsonAdd',
'description' => 'Teste JSON',
]);
$request = new \WP_REST_Request('POST', $this->namespaced_route.'/collections');
//$request->set_param('name', 'TesteJsonAdd');
//$request->set_param('description', 'Teste JSON');
$request = new \WP_REST_Request('POST', $this->namespace . '/collections');
$request->set_body($collection_JSON);
$response = $this->server->dispatch( $request );
@ -47,7 +44,7 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
$collection = json_decode($response->get_data());
$id = $collection->id;
$requestGet = new \WP_REST_Request( 'GET', $this->namespaced_route . '/collections/'.$id );
$requestGet = new \WP_REST_Request( 'GET', $this->namespace . '/collections/' . $id );
$responseGet = $this->server->dispatch( $requestGet );
$this->assertEquals( 200, $responseGet->get_status() );
@ -55,7 +52,6 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
$data = json_decode($responseGet->get_data(), true);
$this->assertEquals('TesteJsonAdd', $data['name']);
}
public function test_fetch_collections(){
@ -69,8 +65,11 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
),
true
);
$request = new \WP_REST_Request( 'GET', $this->namespaced_route . '/collections' );
$request = new \WP_REST_Request( 'GET', $this->namespace . '/collections' );
$response = $this->server->dispatch( $request );
$this->assertEquals( 200, $response->get_status() );
$data = json_decode($response->get_data());
@ -91,7 +90,7 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'DELETE',
$this->namespaced_route . '/collections/' . $collection1->get_id()
$this->namespace . '/collections/' . $collection1->get_id()
);
$request->set_body($delete_permanently);
@ -116,7 +115,7 @@ class TAINACAN_REST_Collections_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'DELETE',
$this->namespaced_route . '/collections/' . $collection2->get_id()
$this->namespace . '/collections/' . $collection2->get_id()
);
$request->set_body($delete_permanently);

View File

@ -19,7 +19,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase {
'description' => 'The Progressive JavasScript Framework'
]);
$request = new \WP_REST_Request('POST', $this->namespaced_route . '/items/collection/' . $collection->get_id());
$request = new \WP_REST_Request('POST', $this->namespace . '/items/collection/' . $collection->get_id());
$request->set_body($item_json);
$response = $this->server->dispatch($request);
@ -61,7 +61,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase {
true
);
$request = new \WP_REST_Request('GET', $this->namespaced_route . '/items/collection/' . $collection->get_id());
$request = new \WP_REST_Request('GET', $this->namespace . '/items/collection/' . $collection->get_id());
$response = $this->server->dispatch($request);
$this->assertEquals(200, $response->get_status());
@ -95,7 +95,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'DELETE',
$this->namespaced_route . '/items/' . $item1->get_id()
$this->namespace . '/items/' . $item1->get_id()
);
$request->set_body($delete_permanently);
@ -128,7 +128,7 @@ class TAINACAN_REST_Items_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'DELETE',
$this->namespaced_route . '/items/' . $item2->get_id()
$this->namespace . '/items/' . $item2->get_id()
);
$request->set_body($delete_permanently);

View File

@ -31,7 +31,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'POST',
$this->namespaced_route . '/metadata/collection/' . $collection->get_id()
$this->namespace . '/metadata/collection/' . $collection->get_id()
);
$request->set_body($metadata);
@ -52,7 +52,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'POST',
$this->namespaced_route . '/metadata/item/' . $item->get_id()
$this->namespace . '/metadata/item/' . $item->get_id()
);
$request->set_body($meta_values);
@ -75,7 +75,8 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'Statement'
'name' => 'Statement',
'description' => 'No Statement'
),
true
);
@ -114,7 +115,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'GET',
$this->namespaced_route . '/metadata/collection/' . $collection->get_id()
$this->namespace . '/metadata/collection/' . $collection->get_id()
);
$response = $this->server->dispatch($request);
@ -131,7 +132,7 @@ class TAINACAN_REST_Metadata_Controller extends TAINACAN_UnitApiTestCase {
$request = new \WP_REST_Request(
'GET',
$this->namespaced_route . '/metadata/item/' . $item->get_id()
$this->namespace . '/metadata/item/' . $item->get_id()
);
$response = $this->server->dispatch($request);

View File

@ -23,7 +23,8 @@ class Item_Metadata extends TAINACAN_UnitTestCase {
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste'
'name' => 'teste',
'description' => 'No description',
),
true
);
@ -74,7 +75,8 @@ class Item_Metadata extends TAINACAN_UnitTestCase {
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste'
'name' => 'teste',
'description' => 'No description',
),
true
);
@ -128,7 +130,8 @@ class Item_Metadata extends TAINACAN_UnitTestCase {
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste'
'name' => 'teste',
'description' => 'No description',
),
true
);
@ -185,7 +188,8 @@ class Item_Metadata extends TAINACAN_UnitTestCase {
$collection = $this->tainacan_entity_factory->create_entity(
'collection',
array(
'name' => 'teste'
'name' => 'teste',
'description' => 'No description',
),
true
);