{ "info": { "author": "BlueDynamics Alliance", "author_email": "dev@bluedynamics.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "cone.ugm\n========\n\nPlugin for `cone.app `_ providing user and\ngroup management with LDAP as backend.\n\n.. image:: http://bluedynamics.com/ugm.png\n\n\nFeatures\n--------\n\n- Create, edit and delete users and groups\n- Manage membership of users in groups\n- Roles support\n- Local Manager Support\n- User and group form configuration\n- POSIX support\n- Samba support\n\n\nPrerequirements\n---------------\n\n``lxml``, ``python-ldap`` and ``openldap`` get compiled, the required dev\nheaders must be installed on the system.\n\nOn debian based systems install::\n\n $ apt-get install libxml2-dev libxslt1-dev\n $ apt-get install libsasl2-dev libssl-dev libdb-dev\n\nOn ubuntu oneiric, you might need Berkeley v4.7 Database Libraries to make it\nwork::\n\n $ apt-get install libdb4.7-dev\n\n\nInstallation\n------------\n\n``cone.ugm`` contains a buildout configuration. Download and extract package\nZIP file, enter extraction location and run::\n\n cone.ugm$ python2.7 bootstrap.py\n cone.ugm$ ./bin/buildout\n\nStart Test LDAP server with appropriate LDIF layer::\n\n cone.ugm$ ./bin/testldap start groupOfNames_10_10\n\nStart the application::\n\n cone.ugm$ ./bin/paster serve ugm_groupOfNames_10_10.ini\n\nand browse ``http://localhost:8081/``. Default ``admin`` user password is\n``admin``.\n\nThe \"roles\" behavior in the principal form is only displayed if roles\nconfiguration is sane. The LDIF imported for test layer does not provide the\nroles container by default. Browse \"Settings -> LDAP Roles\" and perform\n\"create roles container\" action if you want to enable roles in the demo.\n\n**Note**: If ``python_ldap`` fails, don't use buildout offline mode!\n\n\nCustomization\n=============\n\nFor customizing the plugin, make an integration package and include it in\nbuildout.\n\n\nLDAP configuration\n------------------\n\nTo define the LDAP configuration location add ``cone.ugm.ldap_config`` property\nto application ini file, i.e.::\n\n cone.ugm.ldap_config = %(here)s/etc/ldap.xml\n\n\nRoles\n-----\n\n``cone.ugm`` internally uses 3 roles in order to permit user actions.\n\n``editor`` is permitted to manage membership, ``admin`` additionally is\npermitted to add, edit and delete users and groups, and ``manager`` is a\nsuperuser. If UGM is the only plugin used, you can reduce the available roles\nto this three::\n\n >>> cone.app.security.DEFAULT_ROLES = [\n ... ('editor', 'Editor'),\n ... ('admin', 'Admin'),\n ... ('manager', 'Manager'),\n ... ]\n\n\nDefault value callbacks\n-----------------------\n\nDepending on the LDAP object classes used for users and groups, more or less\nattributes are required for the entries. Maybe not all of these attributes\nshould be visible to the user of ``cone.ugm``. Some might even require to be\ncomputed. Therefore the plugin supports default value callbacks. These callbacks\nget the principal node and id as attributes::\n\n >>> from cone.ugm import model\n\n >>> def some_field_callback(node, id):\n ... return 'some computed value'\n\nand are set to factory defaults for users and groups respectively::\n\n >>> model.factory_defaults.user['someField'] = some_field_callback\n\nThe factory defaults can also be static values::\n\n >>> model.factory_defaults.user['someField'] = '12345'\n\n\nForm widgets\n------------\n\nThe widgets used for attributes can also be customized. It expects a\n``yafowil`` factory ``chain``, ``props`` and ``custom`` dicts which are passed\nto ``yafowil`` factory. ``required`` flags field as required, and ``protected``\ndefines whether this field is not editable (like user id and group id)::\n\n >>> from cone.ugm.browser import form_field_definitions\n >>> user = form_field_definitions.user\n >>> user['someField'] = dict()\n >>> user['someField']['chain'] = 'field:label:error:text'\n >>> user['someField']['props'] = dict()\n >>> user['someField']['required'] = True\n >>> user['someField']['protected'] = False\n\n\nSamba support\n-------------\n\nExample configuration::\n\n >>> from node.ext.ldap.ugm import (\n ... posix,\n ... shadow,\n ... samba,\n ... )\n\n >>> samba.SAMBA_LOCAL_SID = 'S-1-5-21-1234567890-1234567890-1234567890'\n >>> samba.SAMBA_DEFAULT_DOMAIN = 'yourdomain'\n >>> samba.SAMBA_PRIMARY_GROUP_SID = 'S-1-5-21-1234567890-1234567890-1234567890-123'\n\n >>> from cone.ugm import model\n\n >>> user = model.factory_defaults.user\n >>> user['gidNumber'] = posix.memberGid\n >>> user['loginShell'] = posix.loginShell\n >>> user['shadowFlag'] = shadow.shadowFlag\n >>> user['shadowMin'] = shadow.shadowMin\n >>> user['shadowMax'] = shadow.shadowMax\n >>> user['shadowWarning'] = shadow.shadowWarning\n >>> user['shadowInactive'] = shadow.shadowInactive\n >>> user['shadowLastChange'] = shadow.shadowLastChange\n >>> user['shadowExpire'] = shadow.shadowExpire\n >>> user['sambaSID'] = samba.sambaUserSID\n >>> user['sambaDomainName'] = samba.sambaDomainName\n >>> user['sambaPrimaryGroupSID'] = samba.sambaPrimaryGroupSID\n >>> user['sambaAcctFlags'] = samba.sambaAcctFlags\n >>> user['sambaPwdLastSet'] = samba.sambaPwdLastSet\n\n >>> group = model.factory_defaults.group\n >>> model.factory_defaults.group['memberUid'] = posix.memberUid\n\n\nContributors\n============\n\n- Robert Niederreiter \n\n- Florian Friesdorf \n\n- Jens Klein \n\n\nHistory\n=======\n\n0.9.7\n-----\n\n- Directly depend on ``lxml`` in ``setup.py``\n [rnix, 2014-05-13]\n\n\n0.9.6\n-----\n\n- Adopt dependencies.\n [rnix, 2013-01-10]\n\n\n0.9.5\n-----\n\n- Portrait CSS fix.\n [rnix, 2012-10-30]\n\n- Python 2.7 Support.\n [rnix, 2012-10-16]\n\n- adopt to ``cone.app`` 0.9.4\n [rnix, 2012-07-29]\n\n- adopt to ``node`` 0.9.8\n [rnix, 2012-07-29]\n\n- adopt to ``plumber`` 1.2\n [rnix, 2012-07-29]\n\n- Simplify ``cone.ugm.browser.actions``.\n [rnix, 2012-07-26]\n\n- Add local manager functionality.\n [rnix, 2012-07-25]\n\n\n0.9.4\n-----\n\n- Get rid of BBB classes usage from ``cone.app``.\n [rnix, 2012-05-18]\n\n- Fix invalidation after settings form save.\n [rnix, 2012-04-23]\n\n- Portrait Image support.\n [rnix, 2012-04-21]\n\n- Configuration for attributes exposed to attribute map.\n [rnix, 2012-04-19]\n\n- Invalidate after creating principal or roles container.\n [rnix, 2012-04-19]\n\n- Adopt ``expires`` blueprint to ``yafowil.widget.datetime`` 1.3.\n [rnix, 2012-04-19]\n\n\n0.9.3\n-----\n\n- Add Autoincrement Feature for user ids.\n [rnix, 2012-03-30]\n\n\n0.9.2\n-----\n\n- Account expiration widget improvements.\n [rnix, 2012-03-20]\n\n\n0.9.1\n-----\n\n- Add account expiration functionality.\n [rnix, 2011-03-06]\n\n- Make display field of In-Out widget configurable.\n [rnix, 2011-01-31]\n\n- Dynamic width CSS.\n [rnix, 2011-12-18]\n\n- Get rid of global ``cone.ugm.backend``. ``cone.app.cfg.auth`` is returend\n by ``cone.ugm.model.utils.ugm_backend``.\n [rnix, 2011-11-22]\n\n- Explicit names for settings forms.\n [rnix, 2011-11-18]\n\n- Add node properties for users and groups to get displayed in navtree if\n displayed.\n [rnix, 2011-11-16]\n\n\n0.9\n---\n\n- Initial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/bluedynamics/cone.ugm", "keywords": "", "license": "GNU General Public Licence", "maintainer": null, "maintainer_email": null, "name": "cone.ugm", "package_url": "https://pypi.org/project/cone.ugm/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cone.ugm/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/bluedynamics/cone.ugm" }, "release_url": "https://pypi.org/project/cone.ugm/0.9.7/", "requires_dist": null, "requires_python": null, "summary": "cone.ugm", "version": "0.9.7" }, "last_serial": 1091076, "releases": { "0.9": [ { "comment_text": "", "digests": { "md5": "f1fb8ffd4a39274ba16c5e08b083621b", "sha256": "3924f7dc42bfb00ddc64bbef22f8627fc86bf5282b4f1dad38bed497ea8e7284" }, "downloads": -1, "filename": "cone.ugm-0.9.tar.gz", "has_sig": false, "md5_digest": "f1fb8ffd4a39274ba16c5e08b083621b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62880, "upload_time": "2011-09-22T14:51:16", "url": "https://files.pythonhosted.org/packages/48/fe/e2489cf442c5f5b6f8dc64642bc6b995c57953ee461347d5d9c5e87be680/cone.ugm-0.9.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "05c0b012b20ef6327125d2d53c08d1ab", "sha256": "95b89913c0e82d3e246ff697f9f9db2c9ec7e890e5e967f1c70e1a0b2cc7553e" }, "downloads": -1, "filename": "cone.ugm-0.9.1.tar.gz", "has_sig": false, "md5_digest": "05c0b012b20ef6327125d2d53c08d1ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67451, "upload_time": "2012-03-20T10:50:33", "url": "https://files.pythonhosted.org/packages/d8/9e/6e9b7382186178b8bd689f0ad42cd0d201fac14aa6d2bec773e18429d28f/cone.ugm-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "526886531e0c40aae52a6c434d9c9123", "sha256": "b8b499c2ddeff9196311954606a2b93e9cb35e784f409743557439618307c806" }, "downloads": -1, "filename": "cone.ugm-0.9.2.tar.gz", "has_sig": false, "md5_digest": "526886531e0c40aae52a6c434d9c9123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67548, "upload_time": "2012-03-20T13:46:14", "url": "https://files.pythonhosted.org/packages/35/33/f45933de1625f8bd421566b575fb3fd7574c024c2e11495f00baf6d012ba/cone.ugm-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "598f8409d4d49e050aa139f9bd2ba792", "sha256": "d7aaa76873857139e8cdf2c6b784d2550c25e00931860847aa44850a217b1ef2" }, "downloads": -1, "filename": "cone.ugm-0.9.3.tar.gz", "has_sig": false, "md5_digest": "598f8409d4d49e050aa139f9bd2ba792", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68983, "upload_time": "2012-03-30T09:47:00", "url": "https://files.pythonhosted.org/packages/0d/33/8378a53159196766d13a80ea5b08d05b05ee8f15881ed20a8379d7101a40/cone.ugm-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "ef67c334f8fdaf9242d0ea3133c4b011", "sha256": "79f159fadf5f320cdb0e64cbf002cecc92f20c119b489900d0845e41e381d632" }, "downloads": -1, "filename": "cone.ugm-0.9.4.tar.gz", "has_sig": false, "md5_digest": "ef67c334f8fdaf9242d0ea3133c4b011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95245, "upload_time": "2012-05-30T11:33:18", "url": "https://files.pythonhosted.org/packages/7d/c1/c6ab12729bbf4e365f841cbca74d25a0f559fc471d816ca60d4f019018ea/cone.ugm-0.9.4.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "8c0837038784b556103ffd591eae8274", "sha256": "d3794fb8b75502d86545974368e4aeef465edaac805b77c04af0ae599d60460f" }, "downloads": -1, "filename": "cone.ugm-0.9.5.tar.gz", "has_sig": false, "md5_digest": "8c0837038784b556103ffd591eae8274", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100450, "upload_time": "2012-12-05T11:17:49", "url": "https://files.pythonhosted.org/packages/22/e7/5f4b3cf3849e440256499bbb6226e59ef712a48635bd587c21af473cdcb2/cone.ugm-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "09830e02a3754714da847fb221a76c6d", "sha256": "802524e0eb45de9ff20bb60774f240827c19deb631d8cb54217187192d0b0d4c" }, "downloads": -1, "filename": "cone.ugm-0.9.6.tar.gz", "has_sig": false, "md5_digest": "09830e02a3754714da847fb221a76c6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99556, "upload_time": "2014-05-13T16:35:57", "url": "https://files.pythonhosted.org/packages/b6/1b/fff45d8edfde44e80c7ceb0ff8e61c98396b88534d3fdd537ec11333f2c6/cone.ugm-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "da75ce631bc4364f6246eec03f4d6c41", "sha256": "fad4910fad1499ec76e8395edd200b7d5b349668d4d2f9e28d5c1e6b9cf7312b" }, "downloads": -1, "filename": "cone.ugm-0.9.7.tar.gz", "has_sig": false, "md5_digest": "da75ce631bc4364f6246eec03f4d6c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99638, "upload_time": "2014-05-13T17:45:31", "url": "https://files.pythonhosted.org/packages/fc/9a/3d2a648fb267002838ff3dcb08c804265984c41c84ac13e176d30a6e9a9c/cone.ugm-0.9.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da75ce631bc4364f6246eec03f4d6c41", "sha256": "fad4910fad1499ec76e8395edd200b7d5b349668d4d2f9e28d5c1e6b9cf7312b" }, "downloads": -1, "filename": "cone.ugm-0.9.7.tar.gz", "has_sig": false, "md5_digest": "da75ce631bc4364f6246eec03f4d6c41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99638, "upload_time": "2014-05-13T17:45:31", "url": "https://files.pythonhosted.org/packages/fc/9a/3d2a648fb267002838ff3dcb08c804265984c41c84ac13e176d30a6e9a9c/cone.ugm-0.9.7.tar.gz" } ] }