Ejemplo n.º 1
0
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store(Request $request)
 {
     $group = new group();
     $group->name = $request->input('name');
     $group->body = $request->input('body');
     $group->group_type = $request->input('group_type');
     if ($request->get('address')) {
         $group->address = $request->input('address');
         if (!$group->geocode()) {
             flash()->error(trans('messages.address_cannot_be_geocoded'));
         } else {
             flash()->info(trans('messages.ressource_geocoded_successfully'));
         }
     }
     if ($group->isInvalid()) {
         // Oops.
         return redirect()->action('GroupController@create')->withErrors($group->getErrors())->withInput();
     }
     $group->save();
     // handle cover
     if ($request->hasFile('cover')) {
         Storage::disk('local')->makeDirectory('groups/' . $group->id);
         Image::make($request->file('cover'))->widen(800)->save(storage_path() . '/app/groups/' . $group->id . '/cover.jpg');
         Image::make($request->file('cover'))->fit(300, 200)->save(storage_path() . '/app/groups/' . $group->id . '/thumbnail.jpg');
     }
     // make the current user a member of the group
     $membership = \App\Membership::firstOrNew(['user_id' => $request->user()->id, 'group_id' => $group->id]);
     $membership->notification_interval = 60 * 24;
     // default to daily interval
     $membership->membership = \App\Membership::MEMBER;
     $membership->save();
     return redirect()->action('MembershipController@settings', [$group->id]);
 }
Ejemplo n.º 2
0
 /**
  * Process the account creation from the form of inviteConfirm()
  */
 public function inviteRegister(Request $request, Group $group, $token)
 {
     $this->validate($request, ['name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6']);
     $invite = \App\Invite::whereToken($token)->firstOrFail();
     $invite->claimed_at = Carbon::now();
     $user = new \App\User();
     $user->name = $request->get('name');
     $user->email = $request->get('email');
     $user->password = bcrypt($request->get('password'));
     // in the strange event the user changes the email on the registration form, we cannot consider it is verified using the invite.
     if ($invite->email == $request->get('email')) {
         $user->verified = 1;
     }
     $user->save();
     $membership = \App\Membership::firstOrNew(['user_id' => $user->id, 'group_id' => $group->id]);
     $membership->membership = \App\Membership::MEMBER;
     $membership->save();
     Auth::login($user);
     flash()->info(trans('messages.you_are_now_a_member_of_this_group'));
     return redirect()->action('GroupController@show', $group->id);
 }
 /**
  * Store new settings from the settingsForm
  */
 public function settings(Request $request, Group $group)
 {
     // load or create membership for this group and user combination
     $membership = \App\Membership::firstOrNew(['user_id' => $request->user()->id, 'group_id' => $group->id]);
     $membership->membership = \App\Membership::MEMBER;
     $membership->notification_interval = $this->intervalToMinutes($request->get('notifications'));
     $membership->save();
     return redirect()->action('GroupController@show', [$group->id])->with('message', trans('membership.settings_updated'));
 }