Junior — Middle
What methods are used to verify user rights in the system?
sobes.tech AI
Answer from AI
User rights verification in the system can be carried out in several ways:
-
Authentication and Authorization:
- Authentication is confirming the user's identity (login, password, tokens).
- Authorization checks whether the user has rights to perform an action or access a resource.
-
Role-Based Access Control (RBAC):
- Users are assigned roles (admin, user, guest).
- Each role has a set of permissions.
-
Discretionary Access Control (DAC):
- The resource owner determines who can perform what actions.
-
Mandatory Access Control (MAC):
- The system itself determines access rights based on security policies.
-
Code-level rights checking:
- Using decorators or middleware to check permissions before executing a function.
Example of rights checking in Python using a decorator:
def requires_admin(func):
def wrapper(user, *args, **kwargs):
if not user.is_admin:
raise PermissionError("Access denied")
return func(user, *args, **kwargs)
return wrapper
@requires_admin
def delete_user(user, user_id):
print(f"User {user_id} has been deleted")
class User:
def __init__(self, is_admin):
self.is_admin = is_admin
admin = User(is_admin=True)
user = User(is_admin=False)
delete_user(admin, 123) # Works
# delete_user(user, 123) # Will raise PermissionError
Thus, rights verification is a comprehensive measure that includes user identification and permission checks for specific actions.