浏览代码

Add UserAdmin command

Daniel Supernault 6 年之前
父节点
当前提交
6329bdf5d8
共有 1 个文件被更改,包括 58 次插入0 次删除
  1. 58 0
      app/Console/Commands/UserAdmin.php

+ 58 - 0
app/Console/Commands/UserAdmin.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace App\Console\Commands;
+
+use Illuminate\Console\Command;
+use App\User;
+
+class UserAdmin extends Command
+{
+    /**
+     * The name and signature of the console command.
+     *
+     * @var string
+     */
+    protected $signature = 'user:admin {id}';
+
+    /**
+     * The console command description.
+     *
+     * @var string
+     */
+    protected $description = 'Make a user an admin, or remove admin privileges.';
+
+    /**
+     * Create a new command instance.
+     *
+     * @return void
+     */
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    /**
+     * Execute the console command.
+     *
+     * @return mixed
+     */
+    public function handle()
+    {
+        $id = $this->argument('id');
+        $user = User::whereUsername($id)->orWhere('id', $id)->first();
+        if(!$user) {
+            $this->error('Could not find any user with that username or id.');
+            exit;
+        }
+        $this->info('Found username: ' . $user->username);
+        $state = $user->is_admin ? 'Remove admin privileges from this user?' : 'Add admin privileges to this user?';
+        $confirmed = $this->confirm($state);
+        if(!$confirmed) {
+            exit;
+        }
+
+        $user->is_admin = !$user->is_admin;
+        $user->save();
+        $this->info('Successfully changed permissions!');
+    }
+}