Add MFA code in prep of new MFA routine

This commit is contained in:
James Cole
2019-08-03 19:19:55 +02:00
parent 0b8427f881
commit b0bd35503f
4 changed files with 37 additions and 3 deletions

View File

@@ -285,6 +285,8 @@ class UserRepository implements UserRepositoryInterface
*/ */
public function hasRole(User $user, string $role): bool public function hasRole(User $user, string $role): bool
{ {
// TODO no longer need to loop like this
/** @var Role $userRole */ /** @var Role $userRole */
foreach ($user->roles as $userRole) { foreach ($user->roles as $userRole) {
if ($userRole->name === $role) { if ($userRole->name === $role) {
@@ -371,4 +373,16 @@ class UserRepository implements UserRepositoryInterface
return true; return true;
} }
/**
* Set MFA code.
*
* @param User $user
* @param string $code
*/
public function setMFACode(User $user, string $code): void
{
$user->mfa_secret = $code;
$user->save();
}
} }

View File

@@ -39,6 +39,14 @@ interface UserRepositoryInterface
*/ */
public function all(): Collection; public function all(): Collection;
/**
* Set MFA code.
*
* @param User $user
* @param string $code
*/
public function setMFACode(User $user, string $code): void;
/** /**
* Gives a user a role. * Gives a user a role.
* *

View File

@@ -62,6 +62,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
* @property bool $has2FA used in admin user controller. * @property bool $has2FA used in admin user controller.
* @property array $prefs used in admin user controller. * @property array $prefs used in admin user controller.
* @property string password * @property string password
* @property string $mfa_secret
* @property Collection roles * @property Collection roles
* @property string blocked_code * @property string blocked_code
* @property bool blocked * @property bool blocked

View File

@@ -47,9 +47,15 @@ class ChangesForV480 extends Migration
$table->dropColumn('transaction_group_id'); $table->dropColumn('transaction_group_id');
} }
); );
Schema::table('rule_groups', function (Blueprint $table) { Schema::table('rule_groups', static function (Blueprint $table) {
$table->dropColumn('stop_processing'); $table->dropColumn('stop_processing');
}); });
Schema::table(
'users', static function (Blueprint $table) {
$table->dropColumn('mfa_secret');
}
);
} }
/** /**
@@ -62,7 +68,7 @@ class ChangesForV480 extends Migration
Schema::table( Schema::table(
'transaction_journals', 'transaction_journals',
function (Blueprint $table) { static function (Blueprint $table) {
$table->integer('transaction_currency_id', false, true)->nullable()->change(); $table->integer('transaction_currency_id', false, true)->nullable()->change();
@@ -74,8 +80,13 @@ class ChangesForV480 extends Migration
$table->foreign('transaction_group_id')->references('id')->on('transaction_groups')->onDelete('cascade'); $table->foreign('transaction_group_id')->references('id')->on('transaction_groups')->onDelete('cascade');
} }
); );
Schema::table('rule_groups', function (Blueprint $table) { Schema::table('rule_groups', static function (Blueprint $table) {
$table->boolean('stop_processing')->default(false); $table->boolean('stop_processing')->default(false);
}); });
Schema::table(
'users', static function (Blueprint $table) {
$table->string('mfa_secret', 50)->nullable();
}
);
} }
} }