Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
User Roles and Permissions
📖 Scenario: You are managing a small online community. You want to organize users by their roles and decide what each role can do.
🎯 Goal: Create a simple structure that lists users with their roles, define what each role can do, and then assign permissions based on roles.
📋 What You'll Learn
Create a list of users with their assigned roles
Define a dictionary of roles with their permissions
Match users to their permissions using their roles
Show the final list of users with their permissions
💡 Why This Matters
🌍 Real World
Managing user access in websites, apps, or online communities to control what actions users can perform.
💼 Career
Understanding roles and permissions is essential for jobs in IT, software development, and system administration to keep systems secure and organized.
Progress0 / 4 steps
1
Create the list of users with roles
Create a list called users with these exact entries: {'name': 'Alice', 'role': 'admin'}, {'name': 'Bob', 'role': 'editor'}, and {'name': 'Charlie', 'role': 'viewer'}.
No-Code
Hint
Use a list of dictionaries where each dictionary has keys 'name' and 'role'.
2
Define roles with permissions
Create a dictionary called roles with these exact entries: 'admin': ['add', 'edit', 'delete'], 'editor': ['add', 'edit'], and 'viewer': ['view'].
No-Code
Hint
Use a dictionary where keys are role names and values are lists of permissions.
3
Assign permissions to users based on roles
Create a new list called users_with_permissions that contains dictionaries for each user with keys 'name' and 'permissions'. Use a for loop with variables user to go through users and assign permissions from roles[user['role']].
No-Code
Hint
Use a loop to create a new list where each user has their permissions from the roles dictionary.
4
Complete the user permissions structure
Add a final line that creates a variable called final_structure and assigns it the value of users_with_permissions.
No-Code
Hint
Just assign the list with permissions to a new variable for clarity.
Practice
(1/5)
1. What is the main purpose of assigning roles to users in a system?
easy
A. To track user login times
B. To store user passwords securely
C. To group permissions and simplify access control
D. To display user profile pictures
Solution
Step 1: Understand the concept of roles
Roles are used to group permissions, making it easier to manage what users can do.
Step 2: Identify the purpose of roles
By grouping permissions, roles simplify access control instead of assigning permissions individually.
Final Answer:
To group permissions and simplify access control -> Option C
Quick Check:
Roles group permissions = simplify access control [OK]
Hint: Roles group permissions to manage access easily [OK]
Common Mistakes:
Confusing roles with user profile features
Thinking roles store passwords
Assuming roles track login times
2. Which of the following is the correct way to assign a permission called edit_post to a role named Editor?
easy
A. Add edit_post permission to the Editor role
B. Remove all permissions from the Editor role
C. Create a new role called edit_post
D. Assign edit_post permission directly to users only
Solution
Step 1: Understand permission assignment
Permissions should be added to roles to control access for all users with that role.
Step 2: Identify correct assignment
Adding edit_post permission to the Editor role allows all editors to edit posts.
Final Answer:
Add edit_post permission to the Editor role -> Option A
Quick Check:
Permissions belong to roles, not just users [OK]
Hint: Permissions go to roles, not only users [OK]
Common Mistakes:
Assigning permissions only to users
Confusing permission names with role names
Removing permissions accidentally
3. If a user has the role Viewer with permission read_only, what action can they perform?
medium
A. Manage user roles
B. Edit and delete content
C. Create new content
D. Only view content without changes
Solution
Step 1: Understand the read_only permission
This permission allows viewing content but prevents any changes.
Step 2: Match permission to user actions
A user with read_only can only see content, not edit, create, or manage roles.
Final Answer:
Only view content without changes -> Option D
Quick Check:
read_only means view only [OK]
Hint: read_only means no changes allowed [OK]
Common Mistakes:
Assuming read_only allows editing
Confusing viewing with managing roles
Thinking read_only allows content creation
4. A user with the role Admin cannot delete posts. What is the most likely reason?
medium
A. The Admin role lacks the delete_post permission
B. The user forgot their password
C. The system does not allow any deletions
D. The user has multiple roles
Solution
Step 1: Check role permissions
If an admin cannot delete posts, the delete_post permission is likely missing from the Admin role.
Step 2: Rule out unrelated causes
Password issues or multiple roles do not prevent permissions if assigned correctly; system-wide deletion block is rare.
Final Answer:
The Admin role lacks the delete_post permission -> Option A
Quick Check:
Missing permission = no action allowed [OK]
Hint: Missing permission means action blocked [OK]
Common Mistakes:
Blaming password issues for permission problems
Assuming multiple roles cause denial
Ignoring role permission settings
5. You want to create a new role called Content Manager that can create, edit, and delete posts but cannot manage user roles. Which permissions should you assign?
hard
A. manage_users, edit_post, delete_post
B. create_post, edit_post, delete_post
C. create_post, manage_users
D. view_post, edit_post
Solution
Step 1: Identify required permissions for content management
Creating, editing, and deleting posts require create_post, edit_post, and delete_post permissions.
Step 2: Exclude user management permissions
Since managing user roles is not allowed, manage_users should not be assigned.
Final Answer:
create_post, edit_post, delete_post -> Option B
Quick Check:
Content management = create, edit, delete posts only [OK]
Hint: Assign only content permissions, exclude user management [OK]