Example #1
0
 /**
  * Determine if the user is authorized to make this request.
  *
  * @return bool
  */
 public function authorize()
 {
     // the user must be verified
     $user = Request::user();
     // there must NOT be a grader for the user
     $grader = Grader::where('user_id', $user->id)->first();
     return $user && $user->verified && !$user->hasRole('grader_a');
 }
Example #2
0
 /**
  * The suggested grader has not accepted yet
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $user = $request->user();
     //$suggestion = Suggestion::where('suggestor_email', $user->email)->first();
     //$suggestion = $user->suggestion;
     $user = $request->user();
     $grader = Grader::where('user_id', $user->id)->first();
     // if($user->grader_status == 'na' || str_contains($user->grader_status, 'not_accepted')){
     //     return $next($request);
     // }
     if ($grader && !$user->hasRole('grader_a')) {
         return $next($request);
     }
     if (!$grader) {
         return $next($request);
     }
     return redirect()->route('home');
 }
 public function handle_suggestion_answer($answer, $unique_string)
 {
     // find the suggestion
     $suggestion = Suggestion::where('unique_string', $unique_string)->first();
     // The grader has accepted
     if ($answer == 'yes') {
         $suggestion->logOutOtherUser();
         $grader_email = $suggestion->grader_email;
         // Check if the grader has already registered
         $user = User::where('email', $grader_email)->first();
         // There is already a grader A with this email
         if ($user && $user->hasRole('grader_a')) {
             $user->grader_status .= ',accepted';
             $user->save();
             $suggestion->accepted = 'yes';
             $suggestion->save();
             $grader = Grader::where('user_id', $user->id)->first();
             $suggestions_count = $grader->suggestions_count;
             $suggestions_count = $suggestions_count + 1;
             $grader->suggestions_count = $suggestions_count;
             $grader->save();
             // Notify the user
             $suggestion->sendAcceptanceEmail($grader->last_name, $grader->first_name);
             return redirect()->route('home');
         }
         // There is already a user with this email
         // The user is verified
         if ($user && $user->verified) {
             // check if the user is logged in
             if (!Auth::check()) {
                 Auth::login($user);
             }
             if (Auth::user()->hasRole('grader_b')) {
                 $grader = Auth::user()->grader;
                 return view('graders.forms.create', compact('grader'));
             }
             return view('graders.forms.create', compact('answer'));
         }
         // The user is not verified
         if ($user && !$user->verified) {
             // check if the user is logged in
             if (Auth::check()) {
                 flash()->error('<strong>Το email σας δεν έχει επιβεβαιωθεί. Παρακαλούμε επιβεβεβαιώστε το email σας ή ζητήστε να σας έλθει εκ νέου το email επιβεβαίωσης.</strong>');
                 return redirect()->route('home');
             } else {
                 flash()->error('<strong>Έχει βρεθεί λογαριασμός με αυτό το email, αλλά το email δεν έχει επιβεβαιωθεί. Παρακαλούμε επιβεβεβαιώστε το email σας ή συνδεθείτε και ζητήστε να σας έλθει εκ νέου το email επιβεβαίωσης.</strong>');
                 return redirect()->route('home');
             }
         }
         // There is not such a user
         return view('graders.new_grader_other', compact('grader_email', 'unique_string'));
     } else {
         // The grader has NOT accepted
         // Notify the user
         $suggestion->sendDenialEmail();
         // Delete the suggestion
         Suggestion::destroy($suggestion->id);
         return redirect()->route('home');
     }
 }