/** * Add roles for new user * * @param $userId * @param $selectedRoles * @throws \Exception */ public function addRoles($userId, $selectedRoles) { try { foreach ($selectedRoles as $key => $id) { $this->model->create(['user_id' => $userId, 'role_id' => $id]); } } catch (\Exception $e) { throw $e; } }
/** * Update user account information * * @param $request * @return bool */ public function updateUser($request) { $redirect = false; $errorMsg = ''; // Start transaction DB::beginTransaction(); // Create new user try { $userId = $request->get('user_id'); // Update user info $user = $this->model->find($userId); $update = $user->update(['first_name' => $request->get('first_name'), 'last_name' => $request->get('last_name'), 'email' => $request->get('email'), 'active' => $request->get('active'), 'password' => bcrypt($request->get('password'))]); // Remove all existing roles for user if (isset($user->id)) { $user->roles()->delete(); } // Update user roles $newRoles = explode(',', $request->get('role')); if (count($newRoles) > 0) { foreach ($newRoles as $key => $value) { $this->userRoleModel->create(['user_id' => $userId, 'role_id' => $value]); } } } catch (\Exception $e) { $errorMsg = $e->getMessage(); $redirect = true; } catch (QueryException $e) { $errorMsg = $e->getErrors(); $redirect = true; } catch (ModelNotFoundException $e) { $errorMsg = $e->getErrors(); $redirect = true; } // Redirect if errors if ($redirect) { // Rollback DB::rollback(); // Log specific technical message Tools::log($errorMsg, array_except($request->all(), ['_token', 'created_from', 'created_to', 'password', 'password_confirmation'])); return false; } // Commit all changes DB::commit(); return true; }
public function run() { foreach ($this->roles as $roleName) { UserRole::create(['name' => $roleName]); } }