blockUser static method

Future<void> blockUser(
  1. Session session,
  2. int userId
)

Marks a user as blocked so that they can't log in, and invalidates the cache for the user, and signs the user out.

Implementation

static Future<void> blockUser(Session session, int userId) async {
  var userInfo = await findUserByUserId(session, userId);
  if (userInfo == null) {
    throw 'userId $userId not found';
  } else if (userInfo.blocked) {
    throw 'userId $userId already blocked';
  }
  // Mark user as blocked in database
  userInfo.blocked = true;
  await session.dbNext.updateRow(userInfo);
  await invalidateCacheForUser(session, userId);
  // Sign out user
  await session.auth.signOutUser(userId: userId);
}