ckanext-drupal-idp


Nameckanext-drupal-idp JSON
Version 0.4.6 PyPI version JSON
download
home_pageNone
SummaryLogin to CKAN using Drupal session cookie
upload_time2024-10-17 13:31:49
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseAGPL
keywords ckan
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            [![Tests](https://github.com/DataShades/ckanext-drupal-idp/workflows/Tests/badge.svg?branch=main)](https://github.com/DataShades/ckanext-drupal-idp/actions)

# ckanext-drupal-idp

When Drupal's session cookie is available use it for user authentication. Create missing users, using data from Drupal's DB and synchronize(conditionally) fields when user details changed on Drupal's side.


## Requirements

* python >= 3.6
* CKAN >= 2.9


## Installation

To install ckanext-drupal-idp:

1. Activate your CKAN virtual environment, for example:

		. /usr/lib/ckan/default/bin/activate

2. Clone the source and install it on the virtualenv

		git clone https://github.com/DataShades/ckanext-drupal-idp.git
		cd ckanext-drupal-idp
		pip install -e .

3. Add `drupal-idp` to the `ckan.plugins` setting in your CKAN
   config file (by default the config file is located at
   `/etc/ckan/default/ckan.ini`).

4. Configure Drupal's DB:

		ckanext.drupal_idp.db_url = <URL>

4. Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:

		sudo service apache2 reload


## Config settings

	# ckanext-drupal-idp
	# Defines database used by the Drupal application
	# (mandatory).
	ckanext.drupal_idp.db_url = mysql://drupal_user:drupal_pass@127.0.0.1:3306/db_name

	# Whether to make an attempt to synchronize user's details everytime
	# session is used. This may result in unauthenticated session if new name or email
	# already present in CKAN database
	# (optional, default: false).
	ckanext.drupal_idp.synchronization.enabled = true

	# Configure hostname of the drupal instance statically. Usefull for local testing with
	# manually added cookie from any accessible drupal instance
	# (optional)
	ckanext.drupal_idp.host = my.site.com

	# Whether to set sysadmin flag on the user who has Drupal's admin role
	# (optional, default: false)
	ckanext.drupal_idp.admin_role.inherit = true

	# Name of the role that grants sysadmin status
	# (optional, default: administrator)
	ckanext.drupal_idp.admin_role.name = administrator

	# When user created, set his ID to the same value as DrupalID
	# (optional, default: false)
	ckanext.drupal_idp.same_id = true

	# Custom Drupal fields that shold be synchronized as well
	# (optional, default: [])
    ckanext.drupal_idp.extra_fields = field_age field_xxx

	# Skip user identification during static requests(css/js)
	# (optional, default: false)
    ckanext.drupal_idp.skip_static = yes

## API actions

#### `drupal_idp_user_show`

##### Parameters:

    id: (mandatory) DrupalID of the user

##### Details:

Accepts mandatory `id`(DrupalID). The rest of parameters will be
passed to underlying `user_show`.

---

## Auth functions

#### `drupal_idp_user_show`

##### Details:

Checks whether user is allowed to get user details by DrupalID. At the
moment only sysadmin can pass this check.

---

## CLI

    * drupal-idp - ckanext-drupal-idp CLI
      * user - User management
        * list - List all users with DrupalID

---

## Developer installation

To install ckanext-drupal-idp for development, activate your CKAN virtualenv and
do:

    git clone https://github.com/DataShades/ckanext-drupal-idp.git
    cd ckanext-drupal-idp
    python setup.py develop
    pip install -r dev-requirements.txt


## Tests

To run the tests, do:

    pytest --ckan-ini=test.ini ckanext/drupal_idp

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ckanext-drupal-idp",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": "DataShades <datashades@linkdigital.com.au>",
    "keywords": "CKAN",
    "author": null,
    "author_email": "DataShades <datashades@linkdigital.com.au>, Sergey Motornyuk <sergey.motornyuk@linkdigital.com.au>",
    "download_url": "https://files.pythonhosted.org/packages/03/d0/0f7a6ac59fcca910bb9d9b212cd818d202c7c96330d11ab8fc8fd5ff71f4/ckanext_drupal_idp-0.4.6.tar.gz",
    "platform": null,
    "description": "[![Tests](https://github.com/DataShades/ckanext-drupal-idp/workflows/Tests/badge.svg?branch=main)](https://github.com/DataShades/ckanext-drupal-idp/actions)\n\n# ckanext-drupal-idp\n\nWhen Drupal's session cookie is available use it for user authentication. Create missing users, using data from Drupal's DB and synchronize(conditionally) fields when user details changed on Drupal's side.\n\n\n## Requirements\n\n* python >= 3.6\n* CKAN >= 2.9\n\n\n## Installation\n\nTo install ckanext-drupal-idp:\n\n1. Activate your CKAN virtual environment, for example:\n\n\t\t. /usr/lib/ckan/default/bin/activate\n\n2. Clone the source and install it on the virtualenv\n\n\t\tgit clone https://github.com/DataShades/ckanext-drupal-idp.git\n\t\tcd ckanext-drupal-idp\n\t\tpip install -e .\n\n3. Add `drupal-idp` to the `ckan.plugins` setting in your CKAN\n   config file (by default the config file is located at\n   `/etc/ckan/default/ckan.ini`).\n\n4. Configure Drupal's DB:\n\n\t\tckanext.drupal_idp.db_url = <URL>\n\n4. Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:\n\n\t\tsudo service apache2 reload\n\n\n## Config settings\n\n\t# ckanext-drupal-idp\n\t# Defines database used by the Drupal application\n\t# (mandatory).\n\tckanext.drupal_idp.db_url = mysql://drupal_user:drupal_pass@127.0.0.1:3306/db_name\n\n\t# Whether to make an attempt to synchronize user's details everytime\n\t# session is used. This may result in unauthenticated session if new name or email\n\t# already present in CKAN database\n\t# (optional, default: false).\n\tckanext.drupal_idp.synchronization.enabled = true\n\n\t# Configure hostname of the drupal instance statically. Usefull for local testing with\n\t# manually added cookie from any accessible drupal instance\n\t# (optional)\n\tckanext.drupal_idp.host = my.site.com\n\n\t# Whether to set sysadmin flag on the user who has Drupal's admin role\n\t# (optional, default: false)\n\tckanext.drupal_idp.admin_role.inherit = true\n\n\t# Name of the role that grants sysadmin status\n\t# (optional, default: administrator)\n\tckanext.drupal_idp.admin_role.name = administrator\n\n\t# When user created, set his ID to the same value as DrupalID\n\t# (optional, default: false)\n\tckanext.drupal_idp.same_id = true\n\n\t# Custom Drupal fields that shold be synchronized as well\n\t# (optional, default: [])\n    ckanext.drupal_idp.extra_fields = field_age field_xxx\n\n\t# Skip user identification during static requests(css/js)\n\t# (optional, default: false)\n    ckanext.drupal_idp.skip_static = yes\n\n## API actions\n\n#### `drupal_idp_user_show`\n\n##### Parameters:\n\n    id: (mandatory) DrupalID of the user\n\n##### Details:\n\nAccepts mandatory `id`(DrupalID). The rest of parameters will be\npassed to underlying `user_show`.\n\n---\n\n## Auth functions\n\n#### `drupal_idp_user_show`\n\n##### Details:\n\nChecks whether user is allowed to get user details by DrupalID. At the\nmoment only sysadmin can pass this check.\n\n---\n\n## CLI\n\n    * drupal-idp - ckanext-drupal-idp CLI\n      * user - User management\n        * list - List all users with DrupalID\n\n---\n\n## Developer installation\n\nTo install ckanext-drupal-idp for development, activate your CKAN virtualenv and\ndo:\n\n    git clone https://github.com/DataShades/ckanext-drupal-idp.git\n    cd ckanext-drupal-idp\n    python setup.py develop\n    pip install -r dev-requirements.txt\n\n\n## Tests\n\nTo run the tests, do:\n\n    pytest --ckan-ini=test.ini ckanext/drupal_idp\n",
    "bugtrack_url": null,
    "license": "AGPL",
    "summary": "Login to CKAN using Drupal session cookie",
    "version": "0.4.6",
    "project_urls": {
        "Homepage": "https://github.com/DataShades/ckanext-drupal-idp"
    },
    "split_keywords": [
        "ckan"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2551092806f5c5cc6429e92aa2ef5eccea417c1b84c1b06c0c139efd16a8acbb",
                "md5": "f6556537f258e682dfb420560c85710a",
                "sha256": "40fdb4a730579a04cf373aa100126b6a3180acb273f23a8105abf8e1bcb86831"
            },
            "downloads": -1,
            "filename": "ckanext_drupal_idp-0.4.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f6556537f258e682dfb420560c85710a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 29090,
            "upload_time": "2024-10-17T13:31:47",
            "upload_time_iso_8601": "2024-10-17T13:31:47.645168Z",
            "url": "https://files.pythonhosted.org/packages/25/51/092806f5c5cc6429e92aa2ef5eccea417c1b84c1b06c0c139efd16a8acbb/ckanext_drupal_idp-0.4.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03d00f7a6ac59fcca910bb9d9b212cd818d202c7c96330d11ab8fc8fd5ff71f4",
                "md5": "9b14b5c40ce0468f2eb825bc1d5cc1b3",
                "sha256": "9088cc534198a86a0f0b528a6fbc131ce46f250a5a424df62b6289d7e287afa8"
            },
            "downloads": -1,
            "filename": "ckanext_drupal_idp-0.4.6.tar.gz",
            "has_sig": false,
            "md5_digest": "9b14b5c40ce0468f2eb825bc1d5cc1b3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 27622,
            "upload_time": "2024-10-17T13:31:49",
            "upload_time_iso_8601": "2024-10-17T13:31:49.041308Z",
            "url": "https://files.pythonhosted.org/packages/03/d0/0f7a6ac59fcca910bb9d9b212cd818d202c7c96330d11ab8fc8fd5ff71f4/ckanext_drupal_idp-0.4.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-17 13:31:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "DataShades",
    "github_project": "ckanext-drupal-idp",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [],
    "lcname": "ckanext-drupal-idp"
}
        
Elapsed time: 0.33163s