You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
3.0 KiB
PHP
109 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Http\Requests\EditAdminAuthInput;
|
|
use App\Models\Admin;
|
|
use App\Models\AdminAuth;
|
|
use App\Models\Auth;
|
|
use Login;
|
|
use Yo;
|
|
|
|
class AdminAuthController extends Controller
|
|
{
|
|
public function select()
|
|
{
|
|
Login::admin();
|
|
$admin_auth_list = AdminAuth::select('id', 'name', 'del')->where('del', 2)->orderBy('updated_at', 'desc')->get();
|
|
$list = [];
|
|
foreach ($admin_auth_list as $item) {
|
|
$push = true;
|
|
if ($item->del == 1) {
|
|
$admin_count = Admin::where('admin_auth_id', $item->id)->where('del', 2)->count();
|
|
if ($admin_count == 0) $push = false;
|
|
}
|
|
if ($push) {
|
|
$list[] = [
|
|
'value' => $item->id,
|
|
'label' => $item->name,
|
|
'disabled' => $item->del == 1,
|
|
];
|
|
}
|
|
}
|
|
return Yo::echo([
|
|
'list' => $list
|
|
]);
|
|
}
|
|
|
|
public function list()
|
|
{
|
|
Login::admin();
|
|
$admin_auth_list = AdminAuth::where('del', 2)->orderBy('updated_at', 'desc')->get();
|
|
$list = [];
|
|
foreach ($admin_auth_list as $item) {
|
|
$auth_ids_turn = [];
|
|
foreach (json_decode($item->auth_ids, true) as $i) {
|
|
$auth_ids_turn[] = intval($i);
|
|
}
|
|
$list[] = [
|
|
'id' => $item->id,
|
|
'name' => $item->name,
|
|
'auth_ids' => $item->auth_ids,
|
|
'auth_ids_turn' => $auth_ids_turn,
|
|
'remark' => $item->remark,
|
|
];
|
|
}
|
|
return Yo::echo([
|
|
'list' => $list
|
|
]);
|
|
}
|
|
|
|
public function delete()
|
|
{
|
|
Login::admin([5]);
|
|
$ids = request()->post('ids');
|
|
AdminAuth::whereIn('id', $ids)->update([
|
|
'del' => 1
|
|
]);
|
|
return Yo::delete_echo($ids);
|
|
}
|
|
|
|
public function update(EditAdminAuthInput $request)
|
|
{
|
|
Login::admin([5]);
|
|
$id = request()->post('id');
|
|
$name = $request->post('name');
|
|
$auth_ids = $request->post('auth_ids');
|
|
$remark = $request->post('remark');
|
|
$auth_ids_arr = [];
|
|
foreach ($auth_ids as $auth_id) $auth_ids_arr[] = (string)$auth_id;
|
|
$auth_ids_str = json_encode($auth_ids_arr, JSON_UNESCAPED_UNICODE);
|
|
if (mb_strlen($auth_ids_str) > 1000) Yo::error_echo(100014);
|
|
$admin_auth = AdminAuth::find($id);
|
|
if (!$admin_auth || $admin_auth->del !== 2) Yo::error_echo(100000, ['权限']);
|
|
$admin_auth->name = $name;
|
|
$admin_auth->auth_ids = $auth_ids_str;
|
|
$admin_auth->remark = $remark ?? '';
|
|
$admin_auth->save();
|
|
return Yo::update_echo($admin_auth->id);
|
|
}
|
|
|
|
public function create(EditAdminAuthInput $request)
|
|
{
|
|
Login::admin([5]);
|
|
$name = $request->post('name');
|
|
$auth_ids = $request->post('auth_ids');
|
|
$remark = $request->post('remark');
|
|
$auth_ids_arr = [];
|
|
foreach ($auth_ids as $auth_id) $auth_ids_arr[] = (string)$auth_id;
|
|
$auth_ids_str = json_encode($auth_ids_arr, JSON_UNESCAPED_UNICODE);
|
|
if (mb_strlen($auth_ids_str) > 1000) Yo::error_echo(100014);
|
|
$admin_auth = new AdminAuth();
|
|
$admin_auth->name = $name;
|
|
$admin_auth->auth_ids = $auth_ids_str ?? '[]';
|
|
$admin_auth->remark = $remark ?? '';
|
|
$admin_auth->save();
|
|
return Yo::create_echo($admin_auth->id);
|
|
}
|
|
}
|