Browse Source

完成加载用户的角色信息

tangs 6 years ago
parent
commit
7ef0f9e57e
4 changed files with 75 additions and 17 deletions
  1. 41 1
      app/Http/Controllers/RoleController.php
  2. 0 12
      app/Models/Role.php
  3. 27 0
      app/Models/UserRole.php
  4. 7 4
      routes/web.php

+ 41 - 1
app/Http/Controllers/RoleController.php

@@ -8,6 +8,12 @@ use Illuminate\Support\Facades\Validator;
 
 class RoleController extends Controller
 {
+    /**
+     * 创建一个新的角色
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
     public function CreateRole(Request $request)
     {
         $validator = Validator::make($request->all(), [
@@ -30,6 +36,13 @@ class RoleController extends Controller
         return $this->fail($result["code"], $this->error[$result["code"]]);;
     }
 
+
+    /**
+     * 修改某个角色的信息
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
     public function ModifyRole(Request $request)
     {
         $validator = Validator::make($request->all(), [
@@ -54,6 +67,13 @@ class RoleController extends Controller
         return $this->fail($code, $this->error[$code]);
     }
 
+
+    /**
+     * 删除某个角色
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
     public function DeleteRole(Request $request)
     {
         $validator = Validator::make($request->all(), [
@@ -74,6 +94,12 @@ class RoleController extends Controller
         return $this->fail($code, $this->error[$code]);
     }
 
+    /**
+     * 列出所有的角色信息
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse|mixed
+     */
     public function ListRole(Request $request)
     {
         $validator = Validator::make($request->all(), [
@@ -93,13 +119,27 @@ class RoleController extends Controller
         return $result;
     }
 
+    /**
+     * 加载当前用户的角色信息
+     *
+     * @param Request $request
+     * @return \Illuminate\Http\JsonResponse
+     */
     public function LoadRole(Request $request)
     {
         $uid = (int)$request->input("currentUid");
         if ($uid < 1) {
-            $this->fail(EMPTY_USER_ID, $this->error[EMPTY_USER_ID]);
+            $this->fail(INVALID_USER_ID, $this->error[INVALID_USER_ID]);
+        }
+
+        $role = new Models\UserRole();
+        $data = $role->LoadRole($uid);
+
+        if ($data["code"] == 0){
+            return $this->success($data["data"]);
         }
 
+        return $this->fail($data["code"], $this->error[$data["code"]]);
     }
 
     /**

+ 0 - 12
app/Models/Role.php

@@ -140,18 +140,6 @@ class Role extends Model
         return $data;
     }
 
-    public function LoadRole($uid)
-    {
-        $roles = $this->where("user_id", $uid)->where("is_del", false)->get();
-        if (count($roles) == 0) {
-            return ["code" => 0];
-        }
-        $roleIds = [];
-        foreach ($roles as $role) {
-            array_push($roleIds, $role["role_id"]);
-        }
-        return [];
-    }
 
     /**
      * 列出角色下的用户,如果列出指定角色下的用户,可以keyword指定为角色名即可.

+ 27 - 0
app/Models/UserRole.php

@@ -113,6 +113,33 @@ class UserRole extends Model
         return $role;
     }
 
+    /**
+     * 加载指定用户拥有的角色信息
+     *
+     * @param $uid
+     * @return array
+     */
+    public function LoadRole($uid)
+    {
+        $roles = $this->select("id", "user_id", "role_id", "status")
+            ->where("user_id", $uid)->where("is_del", false)->get();
+        if (count($roles) == 0) {
+            return ["code" => 0, "data" => []];
+        }
+        $roleIds = [];
+        foreach ($roles as $role) {
+            array_push($roleIds, $role["role_id"]);
+        }
+
+        // 加載角色的信息
+        $role = new Role();
+        $roleInfo = $role->LoadRoleByIds_KV($roleIds);
+
+        $result = ["roles" => $roles, "roleInfo" => $roleInfo];
+
+        return ["code" => SUCCESS, "data" => $result];
+    }
+
     /**
      * 根据角色id,列出用户-角色数据
      *

+ 7 - 4
routes/web.php

@@ -24,10 +24,13 @@ Route::get("deleteUser", "UserController@DeleteUser");
 Route::get("listUser", "UserController@ListUser");
 
 // role
-Route::get("createRole", "RoleController@CreateRole");
-Route::get("modifyRole", "RoleController@ModifyRole");
-Route::get("deleteRole", "RoleController@DeleteRole");
-Route::get("listRole", "RoleController@ListRole");
+Route::get("admin/createRole", "RoleController@CreateRole");
+Route::get("admin/modifyRole", "RoleController@ModifyRole");
+Route::get("admin/deleteRole", "RoleController@DeleteRole");
+Route::get("admin/listRole", "RoleController@ListRole");
+
+Route::get("loadRole", "RoleController@LoadRole");
+
 
 // user role
 Route::get("loadRoleUsers", "RoleController@LoadRoleUsers");