Files
edx-platform/common/djangoapps/student
Tim McCormack 80a4437f33 fix: Always save generated anonymous user ID in DB; ignore save=False (#26399)
This deprecates `save=False` for several functions and removes all known
usages of the parameter but does not actually remove the parameter.
Instead, it will emit a deprecation warning if the parameter is used.
We can remove the parameter as soon as we feel sure nothing is using it.

Now that we have refactored `anonymous_id_for_user` to always prefer
retrieving an existing ID from the database -- and observed that only a
small fraction of calls pass save=False -- we can stop respecting
save=False. This opens the door for future improvements, such as generating
random IDs or switching to the external user ID system.

Metrics: I observe that 1 in 16 requests for new, non-request-cached
anon user IDs are made with save=False. But 71% of all calls are served
from the request cache, and 99.7% of the misses are served from the DB.
save=False only appear to come from intermittent spikes as reports are
generated and are low in absolute number.

Also document usage/risk/rotation of secret in anonymous user ID
generation as indicated by `docs/decisions/0008-secret-key-usage.rst`
ADR on `SECRET_KEY` usage.

ref: ARCHBOM-1683
2021-02-08 19:16:05 +00:00
..
2021-02-03 15:47:18 +05:00
2021-02-03 15:29:53 +05:00
2021-02-03 15:29:53 +05:00
2021-02-03 15:29:53 +05:00
2021-02-03 15:29:53 +05:00
2021-02-03 15:29:53 +05:00
2020-03-13 15:14:37 -04:00
2021-02-03 15:29:53 +05:00
2019-12-30 10:35:30 -05:00
2019-12-30 12:25:38 -05:00

Status: Maintenance

Responsibilities
================
The Student app supplements Django's default user information with student-specific information like User Profiles and Enrollments. This has made it a catch all place for a lot of functionality that we want to move into more dedicated places. For instance, while the CourseEnrollment models remain in this app for now, most Enrollment related functionality has already moved to the Enrollment app.

If you are thinking of adding something here, strongly consider adding a new Django app instead. If you are extending something here, please consider extracting it into a separate app.

Intended responsibility: Student dashboard functionality.

Glossary
========


More Documentation
==================

Plugins
-------
Plugin Context view names (see ADR 0003-plugin-contexts.rst):
* "course_dashboard" -> student.views.dashboard.student_dashboard