zoom.users module¶
zoom.users
-
class
zoom.users.User(*args, **kwargs)¶ Bases:
zoom.utils.RecordZoom User
-
activate()¶ Activate the user
-
add_group(group)¶ Make user a member of the group
-
allows(user, action)¶
-
apps¶ Returns the names of the apps the user can access
-
authenticate(password)¶ authenticate user credentials
authorize a user to perform an action on thing
If user is not allowed to perform the action an exception is raised. Object thing must provide allows(user, action) method.
-
can(action, thing)¶ test to see if user can action a thing object.
Object thing must provide allows(user, action) method.
-
can_run(app)¶ test if user can run an app
-
deactivate()¶ Deactivate the user
-
default_app¶ returns the default app for the user
-
full_name¶ user full name
-
get_groups()¶ get groups this user belongs to
>>> from zoom.database import setup_test >>> users = Users(setup_test()) >>> user = users.first(username='guest') >>> user.get_groups()[-4:] ['a_passreset', 'a_signup', 'everyone', 'guests']
>>> user = users.first(username='admin') >>> user.get_groups()[:2] ['a_admin', 'a_apps']
-
get_memberships()¶
-
groups¶ Returns the groups the user belongs to
-
groups_ids¶ Returns the IDs for the groups the user belongs to
-
helpers()¶ provide user helpers
-
initialize(request)¶ Initialize user based on a request
-
is_active¶ get user active status
-
is_member(group)¶ determine if user is a member of a group
-
key¶
-
link¶ user as link
-
login(request, password, remember_me=False)¶ log user in
-
logout()¶ log user out
-
memberships¶
-
name¶ user full name
-
remove_groups()¶ Remove user membership in the group
-
set_password(password)¶ set the user password
-
status_text¶ Return status as human friendly text
-
update_last_seen()¶ Record the latest activity time for the user
avoid the record store put so as not to update the updated timestamp
-
updated_by_link¶ Human friendly user account
-
url¶ user view url
-
user_id¶ Return user record id
-
when_last_seen¶
-
when_updated¶ Human friendly updated timestamp
-
-
class
zoom.users.Users(db, entity=<class 'zoom.users.User'>)¶ Bases:
zoom.records.RecordStoreZoom Users
>>> import datetime >>> from zoom.database import setup_test >>> db = setup_test() >>> users = Users(db) >>> user = users.first(username='guest') >>> user.created = datetime.datetime(2017, 3, 30, 17, 23, 43) >>> user.updated = datetime.datetime(2017, 3, 30, 17, 23, 43) >>> user.now = datetime.datetime(2017, 4, 30, 17, 23, 43) >>> print(user) User user_id .............: 3 key .................: 'guest' name ................: 'Guest User' first_name ..........: 'Guest' last_name ...........: 'User' now .................: datetime.datetime(2017, 4, 30, 17, 23, 43) url .................: '/admin/users/guest' apps ................: ['content', 'forgot', 'login', 'passreset', 'signup'] link ................: 'guest' email ...............: 'guest@datazoomer.com' phone ...............: '' groups ..............: ['everyone', 'guests'] status ..............: 'A' created .............: datetime.datetime(2017, 3, 30, 17, 23, 43) request .............: None updated .............: datetime.datetime(2017, 3, 30, 17, 23, 43) is_admin ............: False password ............: '' username ............: 'guest' full_name ...........: 'Guest User' is_active ...........: True created_by ..........: 1 groups_ids ..........: [4, 3] updated_by ..........: 1 default_app .........: '/home' memberships .........: {3} status_text .........: 'active' is_developer ........: False when_updated ........: 'over a month ago' when_last_seen ......: 'never' updated_by_link .....: 'admin' is_authenticated ....: False
-
after_insert(user)¶ Things to do right after inserting a new user
-
before_delete(user)¶ Things to do right before deleting a user
-
before_insert(user)¶ Things to do just before inserting a new User record
-
before_update(user)¶ Things to do just before updating a User record
-
locate(key)¶
-
Decorator that authorizes (or not) the current user
Raises an exception if the current user does not have at least one of the listed roles.
-
zoom.users.get_current_username(request)¶ get current user username
-
zoom.users.get_groups(db, user)¶ get groups for a user
>>> from zoom.database import setup_test >>> db = setup_test() >>> users = Users(db) >>> guest = users.first(username='guest') >>> guest.username 'guest' >>> guest._id 3
>>> groups = get_groups(db, guest) >>> len(groups) 7 >>> 'everyone' in groups True >>> 'a_login' in groups True >>> 'managers' in groups False >>> 'administrators' in groups False
>>> admin = users.first(username='admin') >>> groups = get_groups(db, admin) >>> 'everyone' in groups True >>> 'a_login' in groups False >>> 'managers' in groups True >>> 'administrators' in groups True
-
zoom.users.handler(request, next_handler, *rest)¶ handle user
-
zoom.users.key_for(username)¶ Calculates a valid HTML tag id given an arbitrary string.
>>> key_for('Test 123') 'test-123' >>> key_for('New Record') 'new-record' >>> key_for('New "special" Record') 'new-special-record' >>> key_for("hi test") 'hi-test' >>> key_for("hi-test") 'hi-test' >>> key_for(1234) '1234' >>> key_for('this %$&#@^is##-$&*!it') 'this-is-it' >>> key_for('test-this') 'test-this' >>> key_for('test.this') 'test.this' >>> key_for('test\\this') 'test-this'
-
zoom.users.link_to_user(username)¶
-
zoom.users.set_current_user(request)¶ Set current user
Set the current user based on the current username.