gcampus.auth

class gcampus.auth.models.BaseToken(*args, **kwargs)

Bases: DateModelMixin

The base token provides a common interface and attributes that are shared across the AccessKey and CourseToken models.

DEFAULT_PERMISSIONS: List[Tuple[str, str]]

List of permissions that should be applied by default to all newly created instances. Note that this is attribute is only available in subclasses.

TOKEN_LENGTH: int

Length in characters of the token. Required to generate a random and unique value for the token field. Note that this is attribute is only available in subclasses.

apply_default_permissions()

Apply all default permissions as specified in DEFAULT_PERMISSIONS.

course: ForeignKey | Course

The course associated with this token. Note that this is a foreign key relation (many to one) for access keys while it is a one-to-one relation for course tokens.

deactivated: BooleanField

Whether the token is deactivated. Deactivated tokens can not be used to log in and have no permissions.

get_all_permissions() List[str]

Return a list of all permissions in the style of {app_label}.{codename}.

property is_active: bool

Whether the user is active. This is only the case when the user is not deactivated and the course email is verified (see gcampus.auth.models.Course.email_verified).

last_login: DateTimeField

Date and time of the last login. Updated using the gcampus.auth.signals.token_user_logged_in signal.

permissions: ManyToManyField | PermissionManager

List of permissions (many to many field) for this token.

token: CharField | str

The token field contains a unique character of length TOKEN_LENGTH used for authentication. Note that this is attribute is only available in subclasses as the length varies from model to model.

type: TokenType

Type of the token.

class gcampus.auth.models.CourseToken(id, created_at, updated_at, deactivated, last_login, token, course)

Bases: BaseToken

class gcampus.auth.models.AccessKey(id, created_at, updated_at, deactivated, last_login, token, course)

Bases: BaseToken