Browse Source

补充基本的用户权限的内容,未处理用户组

DESKTOP-C21C1Q8\tangs 6 years ago
parent
commit
aae4e85fd1
2 changed files with 84 additions and 23 deletions
  1. 48 18
      app/Http/Controllers/PermissionController.php
  2. 36 5
      app/Models/User.php

+ 48 - 18
app/Http/Controllers/PermissionController.php

@@ -1,4 +1,5 @@
 <?php
+
 namespace App\Http\Controllers;
 
 use App\Models;
@@ -10,27 +11,56 @@ use Illuminate\Support\Facades\Log;
 
 class PermissionController extends Controller
 {
-    public function GrantPrivilege(Request $request)
+
+    /**
+     * 分配用户可以查看的菜单的内容
+     *
+     * @param Request $request
+     * @return string
+     */
+    public function AssignActionBars(Request $request)
     {
-        $uid = $request->input("uid");
-        $rights = $request->input("rights");
-        if ($uid == "" || $rights == "") {
-            return "invalid uid or rights";
-        }
+        // 这里的uid从中间件那里获得
+//        $currentUid = $request->input("currentUid");
+        $uid = $request->input("uid"); // 被修改权限用户的id
+        $barIds = $request->input("barIds");
 
-        // todo. 需要在这里获取当前用户id
-        $adminUser = 1;
-
-        log::debug("GrantPrivilege received admin uid " . $adminUser . ", uid " . $uid . ", rights " . $rights);
-        $permission = new Models\Permission();
-        try {
-            $result = $permission->ModifyRole($adminUser, $uid, $rights);
-            if ($result != "success"){
-                return $result;
-            }
-        }catch (Exception $error){
-            return "server error: ". $error;
+        $currentUid = 1;
+        // 判断当前用户是否有权分配权限
+        $userRole = new Models\UserRole();
+        $role = $userRole->LoadRoleByUid($currentUid);
+
+        if (!$role || $role->status != "normal" || $role->role & 1 == 0) {
+            return "permission denied";
         }
+
+        // 有权分配
+        $userActionBar = new Models\UserActionBar();
+        $userActionBar->AddUserActionBar($uid, $barIds);
         return "success";
     }
+
+    /**
+     * 分配用户的是否是管理员或者普通用户的权限
+     *
+     * @param Request $request
+     * @return string
+     */
+    public function AssignUserRole(Request $request)
+    {
+        $uid = $request->input("uid");
+        $roles = $request->input("roles");
+
+        $currentUid = 1;
+        $userRole = new Models\UserRole();
+        $role = $userRole->LoadRoleByUid($currentUid);
+
+        if (!$role || $role->status != "normal" || $role->role & 1 == 0) {
+            return "permission denied";
+        }
+
+        // 有权分配
+        $userRole->AssignRoles($uid, $role);
+        return"success";
+    }
 }

+ 36 - 5
app/Models/User.php

@@ -47,12 +47,43 @@ class User extends Model
 
 class UserRole extends Model
 {
-    /**
-     * 分配角色
-     *
-     */
-    public function AssignRole(){
 
+    protected $table = "user_roles";
+    public $timestamps = false;
+
+    public function AssignRoles($uid, array $roles)
+    {
+        $checkData = $this->select("id")
+            ->where("user_id", $uid)
+            ->where("is_del", false)
+            ->first;
+
+        $r = 0;
+        foreach ($roles as $role) {
+            $r = $r & $role;
+        }
+
+        if (!$checkData) {
+            // 插入新数据
+            $this->user_id = $uid;
+            $this->roles = $r;
+            $this->save();
+        } else {
+            // 更新旧角色
+            $this->roles = $r;
+            $this->save();
+        }
+        return"success";
+    }
+
+    public function LoadRoleByUid($uid)
+    {
+        $role = $this->select("user_id", "role_id", "status")
+            ->where("user_id", $uid)
+            ->where("is_del", false)
+            ->first();
+
+        return $role;
     }
 }