|
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
|
|
|
|
|
|
use App\Models;
|
|
|
use foo\bar;
|
|
|
+use function GuzzleHttp\Psr7\str;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
use Illuminate\Support\Facades\Validator;
|
|
@@ -57,26 +58,108 @@ class PermissionController extends Controller
|
|
|
}
|
|
|
|
|
|
|
|
|
- * 分配用户权限,是管理员或者普通用户的权限
|
|
|
+ * 分配某个用户所拥有的角色
|
|
|
*
|
|
|
* @param Request $request
|
|
|
* @return string
|
|
|
*/
|
|
|
public function AssignUserRole(Request $request)
|
|
|
{
|
|
|
- $uid = $request->input("uid");
|
|
|
- $roles = $request->input("roles");
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ "userId" => "required|min:1",
|
|
|
+
|
|
|
+
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
|
|
|
+ }
|
|
|
+ $uid = $request->input("userId");
|
|
|
+ $roleIdsStr = $request->input("roleIds");
|
|
|
+ $roleIds = $this->GetArrayInt($roleIdsStr);
|
|
|
+ if (0 == $roleIds) {
|
|
|
+ return $this->fail(PARAM_ARRAY_INT, $this->error[PARAM_ARRAY_INT]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $currentUid = 1;
|
|
|
+ $userRole = new Models\UserRole();
|
|
|
+ $role = $userRole->LoadRoleByUid($currentUid);
|
|
|
+
|
|
|
+ if (!$role || $role["status"] != "normal" || $role["role"] != "admin") {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $result = $userRole->AssignUserRoles($uid, $roleIds);
|
|
|
+ if ($result["code"] == 0) {
|
|
|
+ return $this->success($result["data"]);
|
|
|
+ }
|
|
|
+ return $this->fail($result["code"], $this->error[$result["code"]]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 指定角色下有哪些用户,注意和AssignUserRoles区别
|
|
|
+ *
|
|
|
+ * @param Request $request
|
|
|
+ * @return \Illuminate\Http\JsonResponse
|
|
|
+ */
|
|
|
+ public function AssignRoleUser(Request $request)
|
|
|
+ {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ "roleId" => "required|min:1",
|
|
|
+
|
|
|
+
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->fail(REQUEST_PARAM_ERROR, $this->error[REQUEST_PARAM_ERROR], $validator->errors());
|
|
|
+ }
|
|
|
+
|
|
|
+ $roleId = $request->input("roleId");
|
|
|
+ $userIdsStr = $request->input("userIds");
|
|
|
+ $userIds = $this->GetArrayInt($userIdsStr);
|
|
|
+ if (0 == $userIds) {
|
|
|
+ return $this->fail(PARAM_ARRAY_INT, $this->error[PARAM_ARRAY_INT]);
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
$currentUid = 1;
|
|
|
$userRole = new Models\UserRole();
|
|
|
$role = $userRole->LoadRoleByUid($currentUid);
|
|
|
|
|
|
- if (!$role || $role->status != "normal" || $role->role & 1 == 0) {
|
|
|
- return "permission denied";
|
|
|
+ if (!$role || $role["status"] != "normal" || $role["role"] != "admin") {
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
|
- $userRole->AssignRoles($uid, $role);
|
|
|
- return"success";
|
|
|
+ $result = $userRole->AssignRoleUsers($roleId, $userIds);
|
|
|
+ if ($result["code"] == 0) {
|
|
|
+ return $this->success($result["data"]);
|
|
|
+ }
|
|
|
+ return $this->fail($result["code"], $this->error[$result["code"]]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ * 把传入的参数检查是不是正确的int数组,并且每个数字必须大于0。
|
|
|
+ *
|
|
|
+ * @param $str
|
|
|
+ * @return array|int
|
|
|
+ */
|
|
|
+ private function GetArrayInt($str)
|
|
|
+ {
|
|
|
+ $str = trim($str);
|
|
|
+ if ($str == "") {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $intArray = [];
|
|
|
+ $multi = explode(",", $str);
|
|
|
+ foreach ($multi as $m) {
|
|
|
+ $mInt = (int)$m;
|
|
|
+ if ($mInt < 1) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ array_push($intArray, $mInt);
|
|
|
+ }
|
|
|
+ return $intArray;
|
|
|
}
|
|
|
}
|