course-access-groups 0.6.1
An Open edX plugin to customize courses access by grouping learners and assigning different permissions to groups.
Keywords: Django Appsembler

Course Access Groups
====================

|pypi-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|


Overview
--------

This is a plugin for the Open edX Platform that provides the Course Access
Group functionality. It can be installed via pip with minimal configuration to
provide an admin panel to allow site administrators to create access groups
and assign courses to them.

Learners upon registration will be automatically
assigned to a specific group, from which it'll be possible to see which
courses they'll be able to see and enroll in.

The classic example is that you'd want to offer different courses to your
``customers``, ``employees`` and offer some courses for everyone. Hence you'd
need to make two groups and assign courses to only learners within those
groups while mark some courses as public ones.

Documentation
-------------

The full documentation is at https://course-access-groups.readthedocs.org.


.. _supported_open_edx_version:

Supported Open edX Version
--------------------------

The bad news, there's none. The good news is that there's a plan to make it
work with the upstream Open edX versions out of the box.

The even better news, is that you can get this plugin to work by
cherry-picking the following pull requests:

 * The `Access Control Backends pull request`_.
 * The `USER_ACCOUNT_ACTIVATED signal`_.
 * The `edx-search integration with the "has_access" function`_.

.. _Access Control Backends pull request: https://github.com/appsembler/edx-platform/pull/491
.. _USER_ACCOUNT_ACTIVATED signal: https://github.com/edx/edx-platform/pull/23296
.. _edx-search integration with the "has_access" function: https://github.com/appsembler/edx-search/pull/12

License
-------

The code in this repository is licensed under the MIT License unless
otherwise noted.

Please see ``LICENSE.txt`` for details.

How To Contribute
-----------------

Contributions are very welcome.

Even though they were written with ``edx-platform`` in mind, the guidelines
should be followed for Open edX code in general.

The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you
can find it at `PULL_REQUEST_TEMPLATE.md <https://github.com/appsembler/course-access-groups/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_.

The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you
can find it at `ISSUE_TEMPLATE.md <https://github.com/appsembler/course-access-groups/blob/master/.github/ISSUE_TEMPLATE.md>`_.

Reporting Security Issues
-------------------------

Please do not report security issues in public. Please email security@appsembler.com.

Getting Help
------------

Have a question about this repository, or about Open edX in general?  Please
refer to this `list of resources`_ if you need any assistance.

.. _list of resources: https://open.edx.org/getting-help


.. |pypi-badge| image:: https://img.shields.io/pypi/v/course-access-groups.svg
    :target: https://pypi.python.org/pypi/course-access-groups/
    :alt: PyPI

.. |codecov-badge| image:: http://codecov.io/github/appsembler/course-access-groups/coverage.svg?branch=master
    :target: http://codecov.io/github/appsembler/course-access-groups?branch=master
    :alt: Codecov

.. |doc-badge| image:: https://readthedocs.org/projects/course-access-groups/badge/?version=latest
    :target: http://course-access-groups.readthedocs.io/en/latest/
    :alt: Documentation

.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/course-access-groups.svg
    :target: https://pypi.python.org/pypi/course-access-groups/
    :alt: Supported Python versions

.. |license-badge| image:: https://img.shields.io/github/license/appsembler/course-access-groups.svg
    :target: https://github.com/appsembler/course-access-groups/blob/master/LICENSE.txt
    :alt: License


Change Log
----------

..
   All enhancements and patches to course_access_groups will be documented
   in this file.  It adheres to the structure of http://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (http://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
~~~~~~~~~~

[0.6.1] - 2023-01-04
~~~~~~~~~~~~~~~~~~~~
 * Minor fix for a False-Positive log

[0.6.0] - 2022-08-17
~~~~~~~~~~~~~~~~~~~~

 * Use tahoe-sites v0.1.2 and refactor related code:
 * Bump django from 2.2.26 to 2.2.27
 * Bump pillow from 9.0.0 to 9.0.1
 * Bump django from 2.2.27 to 2.2.28
 * Bump lxml from 4.6.2 to 4.9.1
 * Added tests for modifying membership rule.
 * Fixed documentation for modifying the membership rule.

[0.5.3] - 2022-01-31
~~~~~~~~~~~~~~~~~~~~

 * Bump pillow from 7.2.0 to 9.0.0
 * Bump django from 2.2.25 to 2.2.26
 * Fix ValueError for inactive users' REGISTER_USER singal

[0.5.2] - 2022-01-05
~~~~~~~~~~~~~~~~~~~~

 * Fix MembershipRule for SSO learners

[0.5.2] - 2021-12-29
~~~~~~~~~~~~~~~~~~~~

 * Bump pillow from 7.2.0 to 8.3.2
 * Bump sqlparse from 0.4.1 to 0.4.2
 * Tests and docs fixes for membership rule PATCH
 * style doc fix for MembershipRule API
 * Bump lxml from 4.6.2 to 4.6.5
 * Bump django from 2.2.24 to 2.2.25
 * add organization_uuid parameter for superusers

[0.5.1] - 2021-09-01
~~~~~~~~~~~~~~~~~~~~

Added
_____

* log exceptions for the USER_ACCOUNT_ACTIVATED signal


[0.5.0] - 2021-07-14
~~~~~~~~~~~~~~~~~~~~

Added
_____

 * Fixes for Django 2.x

Removed
_______

 * Dropped support for Python 2.x and Django 1.x

[0.4.0] - 2021-01-27
~~~~~~~~~~~~~~~~~~~~

Added
_____

* Support python3 and django2

[0.3.0] - 2020-04-06
~~~~~~~~~~~~~~~~~~~~

Added
_____

* Added new APIs /courses/ and /users/
* Few bug fixes


[0.2.0] - 2020-03-11
~~~~~~~~~~~~~~~~~~~~

Added
_____

* First release to be ready for deployment in staging environments.

[0.1.0] - 2019-11-26
~~~~~~~~~~~~~~~~~~~~

Added
_____

* First release on PyPI.