示例#1
0
 /**
  * Toggle subscription states for a user.
  *
  * @param Request $request
  * @param $id
  * @param $user_id
  * @return \Illuminate\Http\RedirectResponse
  */
 public function toggleSubscription(Request $request, $id, $user_id)
 {
     $user = User::findOrfail($user_id);
     if ($user->id != Auth::id() && !Auth::user()->can('board')) {
         abort(403);
     }
     $list = EmailList::findOrFail($id);
     if ($list->isSubscribed($user)) {
         if ($list->unsubscribe($user)) {
             $request->session()->flash('flash_message', 'You have been unsubscribed to the list ' . $list->name . '.');
             return Redirect::route('user::dashboard', ['id' => $user->id]);
         }
     } else {
         if ($list->is_member_only && !$user->member) {
             $request->session()->flash('flash_message', 'This list is only for members.');
             return Redirect::route('user::dashboard', ['id' => $user->id]);
         }
         if ($list->subscribe($user)) {
             $request->session()->flash('flash_message', 'You have been subscribed to the list ' . $list->name . '.');
             return Redirect::route('user::dashboard', ['id' => $user->id]);
         }
     }
     $request->session()->flash('flash_message', 'Something went wrong toggling your subscription for ' . $list->name . '.');
     return Redirect::route('user::dashboard', ['id' => $user->id]);
 }