create method
Creates a new auth user.
Implementation
Future<AuthUserModel> create(
final Session session, {
final Set<Scope> scopes = const {},
final bool blocked = false,
final Transaction? transaction,
}) async {
return DatabaseUtil.runInTransactionOrSavepoint(session.db, transaction, (
final transaction,
) async {
final authUserToCreate =
await _config.onBeforeAuthUserCreated?.call(
session,
scopes,
blocked,
transaction: transaction,
) ??
(scopes: scopes, blocked: blocked);
final authUser = await AuthUser.db.insertRow(
session,
AuthUser(
blocked: authUserToCreate.blocked,
scopeNames: authUserToCreate.scopes
.map((final s) => s.name)
.nonNulls
.toSet(),
),
transaction: transaction,
);
final createdAuthUser = authUser.toModel();
await _config.onAfterAuthUserCreated?.call(
session,
createdAuthUser,
transaction: transaction,
);
return createdAuthUser;
});
}