Skip to content
Snippets Groups Projects
  1. Dec 20, 2019
    • Braden MacDonald's avatar
      Support anonymous users in the Blockstore-based XBlock runtime · f31dc198
      Braden MacDonald authored
      Implementation details:
      * Anonymous users are assigned a unique ID (like 
        `anon42c08f9996194e2a9339`) which gets stored in the django session.
        `block.scope_ids.user_id` and `block.runtime.anonymous_student_id`
        will both return this value.
      * User state for anonymous users is stored in the django cache and
        automatically expires as the cache gets pruned. Because user state is
        stored, anonymous users can use interactive blocks like capa problems.
      * There is no mechanism for upgrading to a registered account and
        keeping user state since the user state store for anonymous users
        (EphemeralKeyValueStore) is completely different than the one for
        registered users (DjangoKeyValueStore/"CSM"), and has no "list all
        keys" functionality.
      * "User State Summary" field values are shared among [recently active]
        anonymous users but are not shared with registered users.
      * Anonymous users can only access the `public_view` of XBlocks, not the
        regular `student_view`.
      f31dc198
  2. Dec 19, 2019
  3. Dec 18, 2019