hasMany(Permission::class); } /** * Enables or disables TOTP on an account if the token is valid. * * @param int $token The token that we want to verify. * @return boolean */ public function toggleTotp($token) { if (!Google2FA::verifyKey($this->totp_secret, $token)) { return false; } $this->use_totp = !$this->use_totp; $this->save(); return true; } /** * Set a user password to a new value assuming it meets the following requirements: * - 8 or more characters in length * - at least one uppercase character * - at least one lowercase character * - at least one number * * @param string $password The raw password to set the account password to. * @param string $regex The regex to use when validating the password. Defaults to '((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,})'. * @return void */ public function setPassword($password, $regex = '((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,})') { if (!preg_match($regex, $password)) { throw new DisplayException('The password passed did not meet the minimum password requirements.'); } $this->password = Hash::make($password); $this->save(); return; } }