Recall & Review
beginner
What is a decorator in Flask?
A decorator in Flask is a function that wraps another function to add extra behavior without changing the original function's code. It is often used to modify routes or add checks like authentication.
Click to reveal answer
beginner
Why use a role requirement decorator in Flask?
A role requirement decorator checks if a user has the right role before allowing access to a route. It helps protect parts of a web app so only users with certain roles can use them.
Click to reveal answer
intermediate
How does the @wraps decorator help when creating a custom decorator?
The @wraps decorator preserves the original function's name and docstring when it is wrapped by a decorator. This helps with debugging and keeps the function's identity clear.
Click to reveal answer
beginner
What happens if a user without the required role tries to access a Flask route protected by a role requirement decorator?
The decorator will stop the user from accessing the route, usually by returning a 403 Forbidden error or redirecting them to a login or error page.
Click to reveal answer
intermediate
Example: What does this Flask decorator do?
@role_required('admin')
def admin_panel():
pass
This decorator checks if the current user has the 'admin' role before running the admin_panel function. If the user is not an admin, access is denied.
Click to reveal answer
What is the main purpose of a role requirement decorator in Flask?
✗ Incorrect
A role requirement decorator ensures only users with the right role can access certain routes.
Which Python module helps preserve function metadata when writing decorators?
✗ Incorrect
The functools module provides the @wraps decorator to preserve function metadata.
If a user lacks the required role, what HTTP status code is commonly returned?
✗ Incorrect
403 Forbidden indicates the user is not allowed to access the resource.
In Flask, where is the current user's role usually stored for checking in decorators?
✗ Incorrect
User roles are typically stored in the session or user object accessible during the request.
What does the @wraps decorator do inside a custom decorator?
✗ Incorrect
@wraps keeps the original function's metadata intact after decoration.
Explain how to create a Flask decorator that restricts access based on user roles.
Think about wrapping the route function and checking user roles before running it.
You got /5 concepts.
Describe what happens when a user without the required role tries to access a protected Flask route.
Focus on the flow of control when role validation fails.
You got /5 concepts.