General Public is a plugin for CKAN. This plugin aims to restrict what none logged in user can view. This is done using the granular visibility framework plugin. Datasets which have a public visibility can be seen, downloaded and viewed by any user. Whereas protected datasets allow none logged in users to see it datasets metadata but not view the data contained.
This plugin is not plug and play and there is not intention of making it so. It has hard coded items for its current use case. To make it work for your CKAN you will have to edit code.
This plugin requires ckanext-granularvisibility to work.
If your extension works across different versions you can add the following table:
Compatibility with core CKAN versions:
CKAN version | Compatible? |
---|---|
2.6 and earlier | no |
2.7 | no |
2.8 | no |
2.9 | yes |
values:
- "yes" - It works
- "no" - Currently dont know if it work and no intention of making it work
To install ckanext-generalpublic:
-
Make sure to install ckanext-granularvisibility, First.
-
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
-
Clone the source and install it on the virtualenv
git clone https://github.com//ckanext-generalpublic.git cd ckanext-generalpublic pip install -e . pip install -r requirements.txt
-
Add
generalpublic
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini
). -
Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
None at present
To install ckanext-generalpublic for development, activate your CKAN virtualenv and do:
git clone https://github.com//ckanext-generalpublic.git
cd ckanext-generalpublic
python setup.py develop
pip install -r dev-requirements.txt
To run the tests, do:
pytest --ckan-ini=test.ini
If ckanext-generalpublic should be available on PyPI you can follow these steps to publish a new version:
-
Update the version number in the
setup.py
file. See PEP 440 for how to choose version numbers. -
Make sure you have the latest version of necessary packages:
pip install --upgrade setuptools wheel twine
-
Create a source and binary distributions of the new version:
python setup.py sdist bdist_wheel && twine check dist/*
Fix any errors you get.
-
Upload the source distribution to PyPI:
twine upload dist/*
-
Commit any outstanding changes:
git commit -a git push
-
Tag the new release of the project on GitHub with the version number from the
setup.py
file. For example if the version number insetup.py
is 0.0.1 then do:git tag 0.0.1 git push --tags