Files
hyperf_rbac_framework_serve…/app/Controller/Admin/AdminUserController.php
2025-09-15 14:45:29 +08:00

127 lines
3.1 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Controller\Admin;
use App\Annotation\Permission;
use App\Annotation\ResponseFormat;
use App\Middleware\Admin\AdminTokenMiddleware;
use App\Middleware\Admin\PermissionMiddleware;
use App\Service\Admin\AdminUser\UserService;
use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\Middleware;
use Hyperf\HttpServer\Annotation\RequestMapping;
#[Controller(prefix: "admin/adminUser")]
#[ResponseFormat('admin')]
#[Middleware(middleware: AdminTokenMiddleware::class, priority: 100)]
#[Middleware(middleware: PermissionMiddleware::class, priority: 99)]
class AdminUserController
{
/**
* @var UserService
*/
#[Inject]
protected UserService $service;
/**
* @return array
*/
#[RequestMapping(path: "getInfo", methods: "GET")]
public function getInfo(): array
{
return $this->service->handle();
}
/**
* @return array
*/
#[RequestMapping(path: "logout", methods: "POST")]
public function logout(): array
{
return $this->service->logout();
}
/**
* @return array
*/
#[RequestMapping(path: "list", methods: "GET")]
#[Permission(code: 'permission:user:index')]
public function pageList(): array
{
return $this->service->list();
}
/**
* @return array
*/
#[RequestMapping(path: "", methods: "PUT")]
#[Permission(code: 'permission:user:update')]
public function updateInfo(): array
{
return $this->service->updateInfo();
}
/**
* @return array
*/
#[RequestMapping(path: "password", methods: "PUT")]
#[Permission(code: 'permission:user:password')]
public function resetPassword(): array
{
return $this->service->resetPassword();
}
/**
* @return array
*/
#[RequestMapping(path: "", methods: "POST")]
#[Permission(code: 'permission:user:save')]
public function createAdminUser(): array
{
return $this->service->createUser();
}
/**
* @return array
*/
#[RequestMapping(path: "", methods: "DELETE")]
#[Permission(code: 'permission:user:delete')]
public function deleteAdminUser(): array
{
return $this->service->deleteUser();
}
#[RequestMapping(path: "{userId}", methods: "PUT")]
#[Permission(code: 'permission:user:update')]
public function saveInfo(int $userId): array
{
return $this->service->saveUser($userId);
}
/**
* @param int $userId
* @return array
*/
#[RequestMapping(path: "{userId}/roles", methods: "GET")]
#[Permission(code: 'permission:user:getRole')]
public function getAdminUserRole(int $userId): array
{
return $this->service->getUserRole($userId);
}
/**
* @param int $userId
* @return array
*/
#[RequestMapping(path: "{userId}/roles", methods: "PUT")]
#[Permission(code: 'permission:user:setRole')]
public function batchGrantRolesForAdminUser(int $userId): array
{
return $this->service->batchGrantRoleForUser($userId);
}
}