Users¶
Users are central to the capabilities and functionality of the system. A User Object in the system should correspond to a physical person accessing the system so that the actions of that user can be tracked for auditing, and various permissions given to that user adhered to.
Users are collected in groups of Users, have multiple attributes associated with them and are authenticated upon login to the system. We have capabilities with a Cantemo App of integration with Active Directory.
Each user inherits capabilities from the groups that they belong to, such as what transcode profiles they can use, what export locations they have and what Portal Roles they have in the system.
The Portal Roles that they have correspond to the capabilities that have in the system. One Portal Role should be related to an action in the user interface.
The user’s information is stored in two database models. User and UserProfile:
There is a one-to-one relationship between a User and UserProfile. A User object will always have a UserProfile, upon creation of a User a related UserProfile model is created and filled with details of the user.
User and UserProfiles also have relationships to internal models to extend the capabilities:
Message - Internal messages framework
Permission - Internal permission framework
Group - Grouping of Users
Theme - Each user can be given a separate theme if they so wish.
They are also sync’d to backend MAM resources, such as Vidispine, which in turn might be integrated to a third-party user directory system.
User¶
- class django.contrib.auth.models.User(*args, **kwargs)¶
Users within the Django authentication system are represented by this model.
Username and password are required. Other fields are optional.
- Parameters
id – Id
password – Password
last_login – Last login
is_superuser – Designates that this user has all permissions without explicitly assigning them.
username – Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
first_name – First name
last_name – Last name
email – Email address
is_staff – Designates whether the user can log into this admin site.
is_active – Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
date_joined – Date joined
- exception DoesNotExist¶
- exception MultipleObjectsReturned¶
UserProfile¶
- class portal.users.models.UserProfile(*args, **kwargs)¶
UserProfile objects are automatically created by listing to a post_save signal from the User model. UserProfile extends the User model. signals.py holds the code to this __init__.py holds a reference. UserEditProfileAdminAjaxForm in users.forms is used to allowing Admins to update this section.
>>> u = User.objects.create_user(username="doctestuser", password = "testpassword", email = "test@example.com") >>> u.save() >>> u.delete()
- Parameters
id – Id
user_id – User
notes – Notes
create_date – Creation date
paginate_by – Search results per page
paginate_by_jobs_page – Jobs per page
contact_number – Contact number
extra_info – Extra info
theme_id – Theme
roles – Roles
portal_roles – Portal roles
homepage – Homepage
default_ingest_group_id – Default ingest profile
default_collection_profile_id – Default collection profile
default_group_id – Default group
default_sort_list – Default sort list
exclude_search_table_view_columns – Columns to display when using the table view on the search page
_default_metadata_group_item – Default metadata group for items
_default_metadata_group_collection – Default metadata group for collections
_default_metadata_group_subclip – Default metadata group for subclips
default_metadata_batch_update_behaviour – Default metadata batch update behaviour
login_count – Login count
metadata_fields – Metadata fields
timeout – Timeout
default_search_panels – The panels that should be shown by default on the search page
search_results_viewtype – Default search results type when starting a new session
portal_is_local_user – Portal is local user
avatar – Avatar
default_search_criteria_display – Default search criteria display
default_search_criteria_search_only – Default search criteria search only
default_sort_field – Default sort field
default_sort_order – Default sort order
- exception DoesNotExist¶
- exception MultipleObjectsReturned¶
- property default_metadata_group¶
The users default metadata group. Note: This attribute is deprecated and is now an alias for default_metadata_group_item. Please use the more specific attributes: default_metadata_group_item, default_metadata_group_collection and default_metadata_group_subclip instead. :return: default_metadata_group_item
- get_avatar(use_default_if_none=True)¶
- Parameters
use_default_if_none – whether to return a default image when
the avatar has not been set.
Returns the names of the groups the user belongs to. It uses cache as well, as this function is called multiple times in some workflows.
Checking Roles¶
If you have a User object, or a UserProfile object you can check the MAM roles that are stored on the UserProfile. This is for example useful in App views.
You can get a listing of all the Portal Roles a user has in a view by looking at the user associated with a incoming Request:
print(self.request.user.userprofile.portal_roles)
You can check whether a user has a particular Portal Role:
if 'portal_ingest_import_from_storage' in self.request.user.userprofile.portal_roles:
print("User has import role.")
The Portal Roles are sync’d on login by the system.