public function createform(User $user, Group $group) { try { if ($group->isCreator($user->id) || $group > isAdmin($user->id)) { return true; } else { return false; } } catch (\Exception $e) { dd($e->getMessage()); return false; } }
public function store(Request $request) { $this->validate($request, ['name' => 'required|unique:groups|max:255', 'email' => 'required|email|unique:users', 'initial_group' => 'required:array']); $password = str_random(40); $token = str_random(60); $user = new User(['name' => $request->input('name'), 'email' => $request->input('email'), 'password' => bcrypt($password), 'register_token' => $token, 'active' => false, 'system_admin' => false]); $user->save(); foreach ($request->input('initial_group') as $init_group) { try { $group = Group::findOrFail($init_group); $group->users()->save($user); } catch (\Exception $e) { flash()->overlay("The user was created successfully, but there was a problem adding this user to the group with ID {$init_group}. Visit the user's profile and manually check their group membership. The error was\n {$e->getMessage}()", "Group Error"); return redirect()->action('UserController@index'); } } $userdata = ['user' => $user, 'token' => $token]; Mail::queue('emails.user_registration', $userdata, function ($m) use($user) { $m->to($user->email)->subject("Activate Your Account"); }); return redirect()->action('UserController@index'); }
public function editGroupUser(Request $request, Group $group, User $user) { if ($request->input('administrator') == true) { $group->users()->save($user, ['administrator' => true]); } elseif ($request->input('creator') == true) { $group->users()->save($user, ['creator' => true]); } elseif ($request->input('adjudicator') == true) { $group->users()->save($user, ['adjudicator' => true]); } elseif ($request->input('moderator') == true) { $group->users()->save($user, ['moderator' => true]); } return redirect()->action('GroupController@show', compact($group)); }
public function store(Request $request) { $this->validate($request, ['name' => 'required|unique:formdefinitions|max:100', 'description' => 'required', 'group' => 'required|integer', 'definition' => 'required|array', 'start_date' => 'required|date_format:m#d#Y', 'end_date' => 'required|date_format:m#d#Y', 'scores_date' => 'required|date_format:m#d#Y', 'sub_accept_action' => 'required|in:default,custom_message,custom_redir', 'sub_accept_redir' => 'required_if:sub_accept_action,custom_redir|url', 'sub_accept_content' => 'required_if:sub_accept_action,custom_message|string', 'use_custom_css' => 'required|in:true,false', 'custom_css_url' => 'required_if:use_custom_css,true', 'judges' => 'required|array']); try { $group = Group::findOrFail($request->input('group')); } catch (\Exception $e) { flash()->overlay("The team cannot be found, it may have been deleted." . "Team Not Found"); } if (Auth::user()->cannot('create-form', $group)) { return response()->json(["Not authorized." => ["You do not have permission to create forms in this team"]], 403); } if (!(Carbon::createFromFormat("m#d#y", $request->input('start_date')) < Carbon::createFromFormat("m#d#y", $request->input('end_date'))) || !(Carbon::createFromFormat("m#d#y", $request->input('end_date')) < Carbon::createFromFormat("m#d#y", $request->input('scores_date')))) { return response()->json(["error" => true, "The dates you provided are not valid"]); } if ($request->input('sub_accept_action') == 'default') { $sub_accept_content = ''; } elseif ($request->input('sub_accept_action') == 'custom_message') { $sub_accept_content = $request->input('sub_accept_content'); } elseif ($request->input('sub_accept_action') == 'custom_redir') { $sub_accept_content = $request->input('sub_accept_redir'); } else { $sub_accept_content = ''; } if ($request->input('use_custom_css') == 'true') { $use_custom_css = true; $custom_css_url = $request->input("custom_css_url"); } else { $use_custom_css = false; $custom_css_url = ""; } $fieldErrors = new Collection(); $judges = new Collection(); try { foreach ($request->input('judges') as $judge) { try { $judge = User::findOrFail($judge); $judges->push($judge); } catch (\Exception $e) { //$fieldErrors->push(["Judges"=>"Judge with ID of $judge not found!"]); return response()->json(["Problem with Judges: " => ["The user with ID " . $judge . " cannot be found."]], 422); } } } catch (\Exception $e) { return response()->json(["Problem with Judges: " => ["There is a problem with one or more judges selected: " . $e->getMessage()]], 422); } try { $formDef = new FormDefinition(["name" => $request->input('name'), "description" => $request->input('description'), 'group_id' => $request->input('group'), 'user_id' => Auth::user()->id, 'submissions_start' => Carbon::createFromFormat("m#d#y", $request->input('start_date'))->setTime(0, 0, 0), 'submissions_end' => Carbon::createFromFormat("m#d#y", $request->input('end_date'))->setTime(0, 0, 0), 'scores_due' => Carbon::createFromFormat("m#d#y", $request->input('scores_date'))->setTime(0, 0, 0), 'notify_completed_sent' => false, 'status' => 'Scheduled', 'sub_accept_action' => $request->input('sub_accept_action'), 'sub_accept_content' => $sub_accept_content, 'use_custom_css' => $use_custom_css, 'custom_css_url' => $custom_css_url]); $formDef->save(); } catch (\Exception $e) { return response()->json(['Error Creating Form' => ["Error creating FormDefinition", $e->getMessage()]], 500); } foreach ($request->input('definition') as $fieldArray) { $fieldDef = collect($fieldArray); $type = $fieldDef->get("type"); if ($type == "Text") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required|boolean', 'text_type' => 'required|in:any,num,alpha,email,phone,date,time,multiline']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); $field_options->put('text_type', $fieldDef->get('text_type')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { if ($type == "Checkbox") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required', 'value_checked' => 'required', 'value_unchecked' => 'required']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); $field_options->put('value_unchecked', $fieldDef->get('value_unchecked')); $field_options->put('value_checked', $fieldDef->get('value_checked')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { if ($type == "Select") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required', 'multipleselect' => 'required|boolean', 'options' => 'required|array', 'options.*.label' => 'required', 'options.*.value' => 'required']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); $field_options->put('multipleselect', $fieldDef->get('multipleselect')); $field_options->put('options', $fieldDef->get('options')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { if ($type == "RadioGroup") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required', 'options' => 'required|array', 'options.*.label' => 'required', 'options.*.value' => 'required']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); $field_options->put('options', $fieldDef->get('options')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { if ($type == "Address") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); //$field_options->put('options',$fieldDef->get('options')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { if ($type == "File") { $validator = Validator::make($fieldArray, ['id' => 'required|alpha_dash', 'name' => 'required', 'required' => 'required']); if ($validator->fails()) { $fieldErrors->push($validator->errors()); } else { $field_options = new Collection(); $field_options->put('required', $fieldDef->get('required')); $field_options->put('types', $fieldDef->get('types')); $field = new Field(['form_definition_id' => $formDef->id, 'type' => $fieldDef->get('type'), 'field_id' => $fieldDef->get('id'), 'name' => $fieldDef->get('name'), 'order' => 0, 'options' => $field_options->toJson()]); $field->save(); } } else { $fieldErrors->push(["Unknown field type in submission"]); } } } } } } } try { foreach ($judges as $judge) { $formDef->judges()->save($judge); } } catch (\Exception $e) { $formDef->forceDelete(); return response()->json(['Error Creating Form' => ["Failed to add a judge", $e->getMessage()]], 500); } if ($fieldErrors->count() == 0) { return response()->json([$formDef->id], 200); } else { //$formDef->forceDelete(); $errorBag = new Collection(); foreach ($fieldErrors as $fieldError) { foreach ($fieldError->messages() as $error) { $errorBag->push($error); } } return response()->json($errorBag, 422); } //return response()->json(true); }