public function post_add_role(Request $request, User $user, Role $role, Role_user $role_user, Admin $admin)
 {
     $validation_rules = $admin->getValidationRulesAddRole();
     $validation_messages = $admin->getValidationMessagesEditUser();
     $this->validate($request, $validation_rules, $validation_messages);
     $arr_request = $admin->getRequestArrayAddRole($request);
     // check for identical rows already in role_user
     $arr_role_user = DB::table('role_user')->where('user_id', '=', $arr_request['user_id'])->where('role_id', '=', $arr_request['role_id'])->get();
     if (empty($arr_role_user)) {
         $bool_role_user_exists = 0;
         $role_user->add_role($arr_request['user_id'], $arr_request['role_id']);
     } else {
         $bool_role_user_exists = 1;
     }
     //prepare text for output
     $user = $user->find($arr_request['user_id']);
     $arr_request['first_name'] = $user->first_name;
     $arr_request['last_name'] = $user->last_name;
     $role = $role->find($arr_request['role_id']);
     $arr_request['role'] = $role->name;
     $data = $admin->getDataArray($arr_request, 0, $this->arr_logged_in_user);
     if ($bool_role_user_exists) {
         return view('admin/add_role_results_failure_admin')->with('data', $data);
     } else {
         return view('admin/add_role_results_admin')->with('data', $data);
     }
 }