Example #1
0
 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;
     }
 }
Example #2
0
 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);
 }