Merge branch 'too/registerwithmarking' into 'master'

Too/registerwithmarking

See merge request CIEFWorldwideSdnBhd/exchange!23
This commit is contained in:
Jack Goh
2018-06-20 09:37:21 +00:00
4 changed files with 37 additions and 5 deletions
@@ -4,6 +4,8 @@ namespace App\Http\Controllers\Auth;
use App\User;
use App\Role;
use App\Marking;
use Illuminate\Support\Facades\Auth;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Validator;
@@ -56,8 +58,16 @@ class RegisterController extends Controller
* @param array $data
* @return User
*/
protected function create(array $data)
protected function create(Request $data)
{
$marking = Marking::Where('email',$data['email'])->first();
if(!$marking){
return response()->json('Access Denied', 401);
}
if($marking->marking != $data['marking']){
return response()->json('Wrong Marking', 400);
}
$role = Role::where('name','=','member')->first();
$user = new User();
$user->name = $data['name'];
@@ -66,7 +76,6 @@ class RegisterController extends Controller
$user->save();
$user->attachRole($role);
return $user;
return response()->json($user, 201);
}
}
+10
View File
@@ -0,0 +1,10 @@
<?php
use Faker\Generator as Faker;
$factory->define(App\Marking::class, function (Faker $faker) {
return [
'email' => $faker->unique()->safeEmail,
'marking' => str_random(10)
];
});
+1 -1
View File
@@ -51,7 +51,7 @@ Route::group(['middleware' => 'auth:api'], function () {
Route::group(['middleware' => 'guest:api'], function () {
Route::post('login', 'Auth\LoginController@login');
Route::post('register', 'Auth\RegisterController@register');
Route::post('register', 'Auth\RegisterController@create');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
+14 -1
View File
@@ -3,17 +3,30 @@
namespace Tests\Feature;
use Tests\TestCase;
use App\Marking;
use Artisan;
class RegisterTest extends TestCase
{
protected $marking;
public function setUp(){
parent::setUp();
Artisan::call('db:seed');
$this->marking = factory(Marking::class)->create();
}
/** @test */
public function can_register()
{
$this->postJson('/api/register', [
'name' => 'Test User',
'email' => 'test@test.app',
'email' => $this->marking->email,
'password' => 'secret',
'password_confirmation' => 'secret',
'marking' => $this->marking->marking
])
->assertSuccessful()
->assertJsonStructure(['id', 'name', 'email']);