Apr 16, 2025 | 270 words | 3 min read
11.2.5. User Privileges#
Instructions#
Write a class named Privileges
that has an attribute named
privs
and methods named grant
, revoke
, and
get_privs
. The privs
attribute will be a set of strings
like interact
, post
, comment
, edit
, or ban
. If not provided during
instantiation of a Privilege instance, the privs
attribute should be
initialized to have default privileges interact
and post
. The
grant
method takes a string parameter. It should then add that string
to the set of privs
and print a message saying what privilege was
granted. The revoke
method also takes a string parameter. It should
remove that string from the set of privs
and print a message saying
what privilege was revoked. The get_privs
method should return the
set of privileges in alphabetical order as a comma separated string (e.g. ban
,
comment
, edit
, interact
, post
).
Next, write a User
class. This class should have attributes
name
, email
, and privs
, and a method named
describe_user
. The name
and email
attributes
should be strings that are set during instantiation and the privs
attribute should be an instance of the Privileges class. The
describe_user
function should print a formatted list of all the
user’s information.
In the main
function of your program, create a User
instance
with the name Alice
and email alice@example.com
, then call the user’s
describe_user
method to display the result. Next grant Alice the
teleport
privilege and revoke her post
privilege, calling
describe_user
after each change.
Sample Output#
Ensure your program’s output matches the provided samples exactly. This includes all characters, white space, and punctuation. In the samples, user input is highlighted like this for clarity, but your program should not highlight user input in this way.
Sample Output
$ python3 user_privileges_login.py User Profile Name: Alice Email: alice@example.com Privs: interact, post Granted teleport User Profile Name: Alice Email: alice@example.com Privs: interact, post, teleport Revoked post User Profile Name: Alice Email: alice@example.com Privs: interact, teleport
Deliverables#
Save your finished program as user_privileges_login.py
,
replacing login
with your Purdue login. Then submit it along with
all the deliverables listed in
Table 11.7 below.
Deliverable |
Description |
---|---|
|
Your finished program. |
Screenshot(s) |
PNG(s) capturing the test case. |