visuddhinanda 3 лет назад
Родитель
Сommit
596b2f3c15
1 измененных файлов с 42 добавлено и 11 удалено
  1. 42 11
      app/Http/Controllers/CourseMemberController.php

+ 42 - 11
app/Http/Controllers/CourseMemberController.php

@@ -3,9 +3,11 @@
 namespace App\Http\Controllers;
 
 use App\Models\CourseMember;
+use App\Models\Course;
 use Illuminate\Http\Request;
 use App\Http\Resources\CourseMemberResource;
 use App\Http\Api\AuthApi;
+use Illuminate\Support\Facades\Log;
 
 class CourseMemberController extends Controller
 {
@@ -18,12 +20,12 @@ class CourseMemberController extends Controller
     {
         //
         $result=false;
-		$indexCol = ['id','user_id','course_id','role','status','updated_at','created_at'];
+		$indexCol = ['id','user_id','course_id','role','updated_at','created_at'];
 		switch ($request->get('view')) {
             case 'course':
 	            # 获取 course 内所有 成员
                 $user = AuthApi::current($request);
-                if($user){
+                if(!$user){
                     return $this->error(__('auth.failed'));
                 }
                 //TODO 判断当前用户是否有指定的 course 的权限
@@ -49,8 +51,30 @@ class CourseMemberController extends Controller
         }
         $result = $table->get();
 
+        //获取当前用户角色
+        $isOwner = Course::where('id',$request->get('id'))->where('studio_id',$user["user_uid"])->exists();
+        $role = 'unknown';
+        if($isOwner){
+            $role = 'owner';
+        }else{
+            foreach ($result as $key => $value) {
+            # 找到当前用户
+            if($user["user_uid"]===$value->user_id){
+                switch ($value->role) {
+                    case 'assistant':
+                        $role = 'manager';
+                        break;
+                    default:
+                        # code...
+                        break;
+                }
+                break;
+            }
+        }
+        }
+
 		if($result){
-			return $this->ok(["rows"=>GroupMemberResource::collection($result),"count"=>$count]);
+			return $this->ok(["rows"=>CourseMemberResource::collection($result),'role'=>$role,"count"=>$count]);
 		}else{
 			return $this->error("没有查询到数据");
 		}
@@ -119,17 +143,24 @@ class CourseMemberController extends Controller
     {
         //查看删除者有没有删除权限
         //查询删除者的权限
-        $currUser = AuthApi::current($request);
-        if(!$currUser){
+        $user = AuthApi::current($request);
+        if(!$user){
             return $this->error(__('auth.failed'));
         }
 
-        $currUser = CourseMember::where('course_id',$courseMember->course_id)
-                        ->where('user_id',$currUser["user_uid"])
-                        ->select('role')->first();
-        if(!$currUser || $currUser->role ==="member"){
-            //普通成员没有删除权限
-            return $this->error(__('auth.failed'));
+
+        Log::info('course'.$courseMember->course_id);
+        Log::info('user id'.$user["user_uid"]);
+
+        $isOwner = Course::where('id',$courseMember->course_id)->where('studio_id',$user["user_uid"])->exists();
+        if(!$isOwner){
+            $courseUser = CourseMember::where('course_id',$courseMember->course_id)
+                ->where('user_id',$user["user_uid"])
+                ->select('role')->first();
+           if(!$courseUser || $courseUser->role ==="student"){
+                //普通成员没有删除权限
+                return $this->error(__('auth.failed'));
+            }
         }
 
         $delete = $courseMember->delete();