NodeAuthController.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Node;
  5. use App\Models\NodeAuth;
  6. use Exception;
  7. use Illuminate\Http\Request;
  8. use Response;
  9. use Str;
  10. class NodeAuthController extends Controller
  11. {
  12. // 节点授权列表
  13. public function index(Request $request)
  14. {
  15. $status = $request->input('status');
  16. $node = $request->input('node');
  17. $serverip = $request->input('serverip');
  18. $query = NodeAuth::with(['node']);
  19. if (isset($status)) {
  20. // $query->with('node',function($q) use ($status) {
  21. // $q->where("status","=",$status);
  22. // });
  23. $query->whereHas('node',function ($q) use ($status){
  24. $q->where("status","=",$status);
  25. });
  26. }
  27. if (isset($node)){
  28. $query->whereHas('node',function ($q) use ($node){
  29. $q->where("name","like",'%'.$node.'%');
  30. });
  31. }
  32. if (isset($serverip)){
  33. $query->whereHas('node',function ($q) use ($serverip){
  34. $q->where("ip","=",$serverip);
  35. });
  36. // $query->where("ip","=",$serverip);
  37. }
  38. $nodeList = $query->orderBy('node_id')->paginate()->appends(request('page'));
  39. return view('admin.node.auth', ['authorizations' => $nodeList]);
  40. }
  41. // 添加节点授权
  42. public function store()
  43. {
  44. $nodes = Node::whereStatus(1)->doesntHave('auth')->orderBy('id')->get();
  45. if ($nodes->isEmpty()) {
  46. return Response::json(['status' => 'success', 'message' => '没有需要生成授权的节点']);
  47. }
  48. $nodes->each(function ($node) {
  49. $node->auth()->create(['key' => Str::random(), 'secret' => Str::random(8)]);
  50. });
  51. return Response::json(['status' => 'success', 'message' => trans('common.generate_item', ['attribute' => trans('common.success')])]);
  52. }
  53. // 重置节点授权
  54. public function update(NodeAuth $auth)
  55. {
  56. if ($auth->update(['key' => Str::random(), 'secret' => Str::random(8)])) {
  57. return Response::json(['status' => 'success', 'message' => '操作成功']);
  58. }
  59. return Response::json(['status' => 'fail', 'message' => '操作失败']);
  60. }
  61. // 删除节点授权
  62. public function destroy(NodeAuth $auth)
  63. {
  64. try {
  65. $auth->delete();
  66. } catch (Exception $e) {
  67. return Response::json(['status' => 'fail', 'message' => '错误:'.var_export($e, true)]);
  68. }
  69. return Response::json(['status' => 'success', 'message' => '操作成功']);
  70. }
  71. }