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); }