fix bug api role
WMS API/ERP-API/pipeline/head This commit looks good
Details
WMS API/ERP-API/pipeline/head This commit looks good
Details
This commit is contained in:
parent
4da22a3fcd
commit
4ce31cd7ae
|
|
@ -6,14 +6,14 @@ use App\Http\Controllers\Controller;
|
|||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\Auth\Role\StoreRequest;
|
||||
use App\Http\Resources\Auth\Role\ListResource as RowResource;
|
||||
use App\Repositories\Auth\UserRepository;
|
||||
use App\Repositories\Auth\RoleRepository;
|
||||
|
||||
class StoreController extends Controller
|
||||
{
|
||||
/**
|
||||
* Handle the incoming request.
|
||||
*/
|
||||
public function __invoke(StoreRequest $request, UserRepository $repository)
|
||||
public function __invoke(StoreRequest $request, RoleRepository $repository)
|
||||
{
|
||||
$params = $request->validated();
|
||||
$data = $repository->create($params);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
|
|||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\Auth\Role\UpdateRequest;
|
||||
use App\Http\Resources\Auth\Role\ListResource as RowResource;
|
||||
use App\Repositories\Auth\UserRepository;
|
||||
use App\Repositories\Auth\RoleRepository;
|
||||
use App\Models\Role;
|
||||
|
||||
class UpdateController extends Controller
|
||||
|
|
@ -14,10 +14,10 @@ class UpdateController extends Controller
|
|||
/**
|
||||
* Handle the incoming request.
|
||||
*/
|
||||
public function __invoke(UpdateRequest $request, Role $user, UserRepository $repository)
|
||||
public function __invoke(UpdateRequest $request, Role $role, RoleRepository $repository)
|
||||
{
|
||||
$params = $request->validated();
|
||||
$data = $repository->update($user, $params);
|
||||
$data = $repository->update($role, $params);
|
||||
return RowResource::make($data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class StoreRequest extends FormRequest
|
|||
*/
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->user()->checkPermission("auth.user:create");
|
||||
return auth()->user()->checkPermission("auth.role:create");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -23,9 +23,8 @@ class StoreRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|string',
|
||||
'role_ids' => 'nullable|array',
|
||||
'role_ids.*' => 'nullable|integer'
|
||||
'permissions' => 'nullable|array',
|
||||
'permissions.*' => 'nullable|integer'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,9 +23,8 @@ class UpdateRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|string',
|
||||
'role_ids' => 'nullable|array',
|
||||
'role_ids.*' => 'nullable|integer'
|
||||
'permissions' => 'nullable|array',
|
||||
'permissions.*' => 'nullable|integer'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ class StoreRequest extends FormRequest
|
|||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|string',
|
||||
'role_ids' => 'nullable|array',
|
||||
'role_ids.*' => 'nullable|integer'
|
||||
'roles' => 'nullable|array',
|
||||
'roles.*' => 'nullable|integer'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ class UpdateRequest extends FormRequest
|
|||
return [
|
||||
'name' => 'required|string',
|
||||
'email' => 'required|string',
|
||||
'role_ids' => 'nullable|array',
|
||||
'role_ids.*' => 'nullable|integer'
|
||||
'roles' => 'nullable|array',
|
||||
'roles.*' => 'nullable|integer'
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,14 @@ use Illuminate\Database\Eloquent\Model;
|
|||
class Role extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*
|
||||
* @var array<int, string>
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name',
|
||||
];
|
||||
|
||||
public function permissions(){
|
||||
return $this->belongsToMany(Permission::class,"role_permission");
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ class RoleRepository
|
|||
|
||||
$params["password"] = "-";
|
||||
$model = Role::create($params);
|
||||
if (@$params["role_ids"]){
|
||||
$model->roles()->sync($params["role_ids"]);
|
||||
if (@$params["permissions"]){
|
||||
$model->permissions()->sync($params["permissions"]);
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
|
|
@ -38,8 +38,8 @@ class RoleRepository
|
|||
public function update($model, $params){
|
||||
|
||||
$model->update($params);
|
||||
if (@$params["role_ids"]){
|
||||
$model->roles()->sync($params["role_ids"]);
|
||||
if (@$params["permissions"]){
|
||||
$model->permissions()->sync($params["permissions"]);
|
||||
}
|
||||
return $model;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ class UserRepository
|
|||
|
||||
$params["password"] = "-";
|
||||
$user = User::create($params);
|
||||
if (@$params["role_ids"]){
|
||||
$user->roles()->sync($params["role_ids"]);
|
||||
if (@$params["roles"]){
|
||||
$user->roles()->sync($params["roles"]);
|
||||
}
|
||||
return $user;
|
||||
}
|
||||
|
|
@ -38,8 +38,8 @@ class UserRepository
|
|||
public function update($user, $params){
|
||||
|
||||
$user->update($params);
|
||||
if (@$params["role_ids"]){
|
||||
$user->roles()->sync($params["role_ids"]);
|
||||
if (@$params["roles"]){
|
||||
$user->roles()->sync($params["roles"]);
|
||||
}
|
||||
return $user;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,9 @@ use Illuminate\Foundation\Testing\WithFaker;
|
|||
use Tests\TestCase;
|
||||
|
||||
use App\Models\Role;
|
||||
use App\Models\User;
|
||||
use App\Models\Permission;
|
||||
|
||||
use App\Models\User;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
|
|
@ -23,24 +23,23 @@ class StoreTest extends TestCase
|
|||
*/
|
||||
public function test_success(): void
|
||||
{
|
||||
$permission = Permission::where("code","auth.user:create")->first();
|
||||
$permission = Permission::where("code","auth.role:create")->first();
|
||||
$role = Role::factory()->create();
|
||||
$role->permissions()->attach($permission->id);
|
||||
|
||||
$user = User::factory()->create();
|
||||
$user->roles()->attach($role->id);
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$response = $this->post('/auth/user/',[
|
||||
"name" => "new user",
|
||||
"email" => "user@gmail.com"
|
||||
$response = $this->post('/auth/role/',[
|
||||
"name" => "new role"
|
||||
]);
|
||||
|
||||
$response->assertStatus(201);
|
||||
$response->assertJson([
|
||||
"data" => [
|
||||
"name" => "new user",
|
||||
"email" => "user@gmail.com"
|
||||
"name" => "new role"
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
|
@ -51,9 +50,10 @@ class StoreTest extends TestCase
|
|||
*/
|
||||
public function test_with_roles_success(): void
|
||||
{
|
||||
$permission = Permission::where("code","auth.user:create")->first();
|
||||
$permission = Permission::where("code","auth.role:create")->first();
|
||||
$role = Role::factory()->create();
|
||||
$role->permissions()->attach($permission->id);
|
||||
|
||||
$user = User::factory()->create();
|
||||
$user->roles()->attach($role->id);
|
||||
|
||||
|
|
@ -62,23 +62,18 @@ class StoreTest extends TestCase
|
|||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$response = $this->post('/auth/user/',[
|
||||
"name" => "new user",
|
||||
"email" => "user@gmail.com",
|
||||
"role_ids" => [$role->id, $role2->id]
|
||||
$response = $this->post('/auth/role/',[
|
||||
"name" => "new role",
|
||||
"permissions" => [$permission->id]
|
||||
]);
|
||||
|
||||
$response->assertStatus(201);
|
||||
$response->assertJson([
|
||||
"data" => [
|
||||
"name" => "new user",
|
||||
"email" => "user@gmail.com",
|
||||
"roles" => [
|
||||
"name" => "new role",
|
||||
"permissions" => [
|
||||
[
|
||||
"id" => $role->id
|
||||
],
|
||||
[
|
||||
"id" => $role2->id
|
||||
"id" => $permission->id
|
||||
],
|
||||
]
|
||||
]
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class UpdateTest extends TestCase
|
|||
*/
|
||||
public function test_success(): void
|
||||
{
|
||||
$permission = Permission::where("code","auth.user:update")->first();
|
||||
$permission = Permission::where("code","auth.role:update")->first();
|
||||
$role = Role::factory()->create();
|
||||
$role->permissions()->attach($permission->id);
|
||||
$user = User::factory()->create();
|
||||
|
|
@ -31,18 +31,16 @@ class UpdateTest extends TestCase
|
|||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$data = User::factory()->create();
|
||||
$data = Role::factory()->create();
|
||||
|
||||
$response = $this->post('/auth/user/'.$data->id,[
|
||||
"name" => "update user",
|
||||
"email" => "user_update@gmail.com"
|
||||
$response = $this->post('/auth/role/'.$data->id,[
|
||||
"name" => "update role",
|
||||
]);
|
||||
|
||||
$response->assertStatus(200);
|
||||
$response->assertJson([
|
||||
"data" => [
|
||||
"name" => "update user",
|
||||
"email" => "user_update@gmail.com"
|
||||
"name" => "update role",
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
|
@ -53,37 +51,33 @@ class UpdateTest extends TestCase
|
|||
*/
|
||||
public function test_with_roles_success(): void
|
||||
{
|
||||
$permission = Permission::where("code","auth.user:update")->first();
|
||||
$permission = Permission::where("code","auth.role:update")->first();
|
||||
$role = Role::factory()->create();
|
||||
$role->permissions()->attach($permission->id);
|
||||
|
||||
$user = User::factory()->create();
|
||||
$user->roles()->attach($role->id);
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$data = User::factory()->create();
|
||||
$data = Role::factory()->create();
|
||||
$role2 = Role::factory()->create();
|
||||
|
||||
$response = $this->post('/auth/user/'.$data->id,[
|
||||
"name" => "update user",
|
||||
"email" => "user_update@gmail.com",
|
||||
"role_ids" => [
|
||||
$role->id, $role2->id
|
||||
$response = $this->post('/auth/role/'.$data->id,[
|
||||
"name" => "update role",
|
||||
"permissions" => [
|
||||
$permission->id
|
||||
]
|
||||
]);
|
||||
|
||||
$response->assertStatus(200);
|
||||
$response->assertJson([
|
||||
"data" => [
|
||||
"name" => "update user",
|
||||
"email" => "user_update@gmail.com",
|
||||
"roles" => [
|
||||
"name" => "update role",
|
||||
"permissions" => [
|
||||
[
|
||||
"id" => $role->id
|
||||
],
|
||||
[
|
||||
"id" => $role2->id
|
||||
],
|
||||
"id" => $permission->id
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class StoreTest extends TestCase
|
|||
$response = $this->post('/auth/user/',[
|
||||
"name" => "new user",
|
||||
"email" => "user@gmail.com",
|
||||
"role_ids" => [$role->id, $role2->id]
|
||||
"roles" => [$role->id, $role2->id]
|
||||
]);
|
||||
|
||||
$response->assertStatus(201);
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class UpdateTest extends TestCase
|
|||
$response = $this->post('/auth/user/'.$data->id,[
|
||||
"name" => "update user",
|
||||
"email" => "user_update@gmail.com",
|
||||
"role_ids" => [
|
||||
"roles" => [
|
||||
$role->id, $role2->id
|
||||
]
|
||||
]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue