/** * Run the database seeds. * * @return void */ public function run() { $group = new Group(); $group->name = 'Projects'; $group->officer_id = 1; $group->save(); $group->members()->attach(1); }
public function createGroup(Request $request) { $user = Auth::user(); $group = new Group(); $group->gname = $request->input('gname'); $group->user_id = $user->id; $group->save(); $group->members()->attach(array($user->id)); //Adds user as member of group return Redirect::action('PagesController@dashboard'); }
public function store() { $rules = ['name' => 'required']; $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(); } else { $group = new Group(Input::only(['name', 'description'])); $group->save(); $memberDatas = []; $members = Input::has('members') ? Input::get('members') : []; foreach ($members as $member) { $memberDatas[$member] = ['is_owner' => 0]; } $owners = Input::has('owners') ? Input::get('owners') : []; foreach ($owners as $owner) { $memberDatas[$owner] = ['is_owner' => 1]; } $memberDatas[Auth::user()->id] = ['is_owner' => 1]; $group->members()->sync($memberDatas); return Redirect::to(route('group.edit', ['groupId' => $group->id]))->with(['success_message' => 'Created!']); } }
/** * Sync list of members in the database * * @param Group $group The group to sync members with * @param array $members The members that belong in the group */ public function syncMembers(Group $group, array $members) { $group->members()->sync($members); }
/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { $cfg = Config::first(); // Check config if registration is enabled if (!$cfg->registration_enabled) { return response()->json(["msg" => "registrations are disabled"], 403); } $v = Validator::make($request->all(), ['name' => 'required|max:255|unique:groups', 'members' => 'required|array']); for ($n = 0; $n < count($request->members); $n++) { $v->sometimes("members.{$n}.email", 'required|email|max:255', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.password", 'required|confirmed|min:6', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.first_name", 'required|max:255', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.last_name", 'required|max:255', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.birthdate", 'required|date', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.sex", 'required|in:m,f', function ($input) use($n) { return count($input->members >= $n); }); $v->sometimes("members.{$n}.country", 'required', function ($input) use($n) { return count($input->members >= $n); }); //$v->sometimes("members.$n.cv", 'required|mimes:pdf', function($input) use($n) { return count($input->members >= $n); }); } $v->after(function ($validator) use($request) { if (count($request->members) < 1 || count($request->members) > 3) { $validator->errors()->add('members', 'Only 1-3 members are accepted'); } }); if ($v->fails()) { return response()->json($v->errors(), 400); } // validate all members have correct auth or do not exist yet foreach ($request->members as $m) { $qm = Member::where('email', $m['email']); if ($qm->exists()) { // Check password if (!Auth::once(['email' => $m['email'], 'password' => $m['password']])) { return response()->json(["msg" => "User already exists, and password is incorrect", "offender" => $m['email']], 400); } } } $group = new Group($request->only('name')); $group->save(); // create or register to the group all the members foreach ($request->members as $m) { $qm = Member::where('email', $m['email']); if (!$qm->exists()) { $qm = new Member($m); $qm->password = Hash::make($m['password']); $group->members()->save($qm); // Handle cv PDF //if ($m['cv']->isValid()) { // $m['cv']->move(storage_path('app/cvs'), $qm->id.'.pdf'); //} } } Mail::send('emails.admin.groupCreated', ['group' => $group], function ($m) use($group, $cfg) { $m->from('*****@*****.**', 'EESTEC Android Competition'); $m->to($cfg->admin_email, 'ECA Admin')->subject('New group registered!'); }); return response()->json($group); }