Bird
0
0

Given this RolesGuard code, what will happen if a user with role 'guest' tries to access a route requiring 'admin' role?

medium📝 component behavior Q4 of 15
NestJS - Authentication
Given this RolesGuard code, what will happen if a user with role 'guest' tries to access a route requiring 'admin' role?
canActivate(context: ExecutionContext) {
  const requiredRoles = this.reflector.getAllAndOverride('roles', [context.getHandler(), context.getClass()]);
  const { user } = context.switchToHttp().getRequest();
  return requiredRoles.some(role => user.roles?.includes(role));
}
AAn error occurs due to missing roles property
BAccess is denied because 'guest' role is not in requiredRoles
CAccess is granted because any role is accepted
DAccess is granted only if user has 'guest' role
Step-by-Step Solution
Solution:
  1. Step 1: Understand the guard logic

    The guard checks if user roles include any required role using some() method.
  2. Step 2: Analyze user role vs required role

    User has 'guest', required is 'admin'; 'guest' is not included, so some() returns false.
  3. Final Answer:

    Access is denied because 'guest' role is not in requiredRoles -> Option B
  4. Quick Check:

    Role mismatch = access denied [OK]
Quick Trick: User roles must match required roles exactly [OK]
Common Mistakes:
  • Assuming any role grants access
  • Ignoring role check logic
  • Thinking missing roles cause errors

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More NestJS Quizzes