示例#1
0
 public function changeMemberRole($memberId)
 {
     $retval = array('success' => false, 'message' => "Unknown Error");
     try {
         $groupMember = GroupMember::where('id', '=', $memberId)->first();
         if (!$groupMember) {
             $retval['message'] = "Could not locate member";
             return Response::json($retval);
         }
         $group = Group::where('id', '=', $groupMember->group_id)->first();
         if (!$group) {
             $retval['message'] = "Could not locate group";
             return Response::json($retval);
         }
         if (!$group->isGroupOwner(Auth::user()->id)) {
             $retval['message'] = "You aren't the group owner!";
             return Response::json($retval);
         }
         $newRole = Input::all('role')['role'];
         if (!Group::isValidRole($newRole)) {
             $retval['message'] = "Invalid Role: {$newRole}";
             return Response::json($retval);
         }
         if ($newRole != Group::ROLE_OWNER) {
             $owners = GroupMember::where('group_id', '=', $groupMember->group_id)->where('role', '=', Group::ROLE_OWNER)->count();
             if ($owners <= 1) {
                 $retval['message'] = "Group must have an owner!";
                 return Response::json($retval);
             }
         }
         $groupMember->role = $newRole;
         $groupMember->save();
         $retval['success'] = true;
         $retval['message'] = "Member Updated";
         return Response::json($retval);
     } catch (\Exception $e) {
         $retval['message'] = "Exception Caught: {$e->getMessage()}";
         return Response::json($retval);
     }
     return Response::json($retval);
 }