Introduce and use a roles_api module, use the roles API in receivers that want to create or delete role assignments. For new learners and admins, associate their user-role with the customer to which they are linked. Does not yet specify the enterprise_customer for deletions. We want to maintain current behavior on deletes until we do a data backfill of that field. So for now, we'll continue to delete all assignments held by the deleted user. Install django-cache-memoize, so that we can memoize roles (not assignments) in the Django cache.
These directories specify the Python (and system) dependencies for the LMS and Studio. - ``edx`` contains the normal Python requirements files - ``edx-sandbox`` contains the requirements files for Codejail - ``constraints.txt`` is shared between the two (In a normal `OEP-18`_-compliant repository, the ``*.in`` and ``*.txt`` files would be directly in the requirements directory.) .. _OEP-18: https://github.com/edx/open-edx-proposals/blob/master/oeps/oep-0018-bp-python-dependencies.rst