RestrictionService

class RestrictionService[source]

Methods

put_allowed_ip

Add a single IP range to a restriction.

delete_allowed_ip

Remove a single IP range from a restriction.

get_all_entries

List all enrolled students with their entry counts and overrides.

enter

Enter a restricted course, recording an entry event.

get

Get the full settings for a restriction (admin only).

patch

Update restriction settings.

get_all_allowed_ips

Get all IP ranges for a restriction.

patch_entry_override

Set or remove a per-student entry override for a restriction.

put_allowed_ip(*, restriction_id, ip_range)[source]

Add a single IP range to a restriction.

Parameters:
Returns:

The added IP range.

Return type:

IPRange

delete_allowed_ip(*, restriction_id, ip_range)[source]

Remove a single IP range from a restriction.

Parameters:
Returns:

An empty response.

Return type:

None

get_all_entries(*, restriction_id, q='', page_size=50)[source]

List all enrolled students with their entry counts and overrides.

Parameters:
  • restriction_id (str) – The ID of the restriction.

  • q (str) – Only retrieve students whose name or username matches this value.

  • page_size (int) – The size of a single page, maximum is 100.

  • self (RestrictionService[AuthenticatedClient])

Returns:

A paginated list of entry overview entries per student.

Return type:

Response[EntryOverviewEntry]

enter(json_body, *, restriction_id)[source]

Enter a restricted course, recording an entry event.

Validates the password (if set), enforces the entry limit (if session_lockdown is set), records a :class:.RestrictionEntryEvent, and returns the caller’s existing access token enriched with any new restrictions. The same token is reused so the student is not locked out if the response is lost in transit.

Parameters:
Returns:

A login response containing the (updated) access token.

Return type:

UserLoginResponse

get(*, restriction_id)[source]

Get the full settings for a restriction (admin only).

Parameters:
Returns:

The restriction object including the password.

Return type:

Restriction

patch(json_body, *, restriction_id)[source]

Update restriction settings.

The request body mirrors the restriction JSON shape. All fields are optional; omitted fields are left unchanged.

Parameters:
Returns:

The updated restriction.

Return type:

Restriction

get_all_allowed_ips(*, restriction_id, page_size=50)[source]

Get all IP ranges for a restriction.

Parameters:
Returns:

A paginated list of IP ranges.

Return type:

Response[IPRange]

patch_entry_override(json_body, *, restriction_id, user_id)[source]

Set or remove a per-student entry override for a restriction.

Sending null removes the override row entirely (the student falls back to the global session_lockdown limit). Sending a positive integer creates or updates the override for this student.

Parameters:
Returns:

The updated entry overview for this student.

Return type:

EntryOverviewEntry