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