{ "info": { "author": "Marc G\u00f6ldner", "author_email": "info@cramren.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Topic :: Security", "Topic :: Software Development :: Libraries" ], "description": "============\nIntroduction\n============\n\nThe package \"secobj\" provides access control lists for functions, classes and methods. They are\ndeclared and enforced by a decorator named \"access\". The goal of this library is to be simple and\neffective in use but at the same time to provide enough configurability to master complex scenarios.\n\nAs for the time being \"secobj\" only provides authorization based on access control lists. At a later\ntime it can be possible, that the library will be extended with authentication functionality.\n\nThe decorator \"access\" is the pivotal element of this library. It augments the decorated function,\nclass or method with variables, which have the naming pattern \"__acl.*__\". At runtime these\nvariables are evaluated by the decorating function and access is granted or denied. The signature of\nthe decorator is as follows::\n\n access(*rules, **kwargs)\n\nThe decorator can either be called with arguments or without. The possible arguments are:\n\n - *rules*: This is either a sequence of tuples defining the access control rules. Each tuple\n consits of two or more items:\n\n #. The desired action. \"ALLOW\" or \"DENY\" are provided.\n #. The effective principal. Either a user, group, list of groups or one of the predefined\n principals: ANONYMOUS, SYSTEM, AUTHENTICATED, OWNER, EVERYONE.\n #. Zero or more permissions, which will be granted or denied. If no permission is defined,\n than the default permission will be used as the permission defined by this rule.\n\n Or it is a string referencing a named access control list. The format of the string is the \n unique name of the section in the configuration file without the prefix \"rules:\" followed \n by the sign \"#\" and the name of the option in this section. If there is no such option defined\n in the configuration file, the named access control list will be ignored. This can be used to\n define external configurable hooks in the security system.\n\n Each access control list will be extended by the policy rules defined in the function\n \"initsecurity\", by the option \"policy_rules\" in section \"secobj\" and the option \"policy\" in\n the same section, in that order.\n\n - keyword *inherit*: A boolean flag which controlls if the access control rules defined by the \n method of the super class or defined by the super class itself will have effect. This argument\n is only relevant on methods and classes and is ignored otherwise.\n - keyword *permission*: This is the permission which must be granted by one of the rules in the\n effective access control list.\n If this argument is not provided on a class, a default permission named like the fully\n qualified name of the class is defined. \n If not provided on a method, the permission will be that of the class.\n If omitted on a function the \"ALL\" permission will be in effect, meaning, that any permission\n will do.\n - keyword *owner*: This defines the principal which will own the class and instances or\n function. This argument is ignored by methods. A method is always owned by the defining class\n or by the instance. The default owner is the user SYSTEM.\n - keyword *callback*: Defines a function which is called to retrieve the resource (class,\n method, function) which will be used to provide the runtime variables defining the access\n control. The function will be called with all arguments passed and must return an appropriate\n resource object.\n\nBefore the library can be used the function \"initsecurity\" must be called. With the optionally\nprovided configuration file a number of aspects can be controlled. A sensible default is defined by\nthe library. Logging is either configured by the using application or provided as a configuration\nfile to the function \"initsecurity\". If logging is not configured at all, the library will use a\nnull handler for the generated log messages. The signature of the function is as follows::\n\n initsecurity(configfile=None, logconfigfile=None, policyrules=None)\n\nThe arguments are as follows:\n\n - *configfile*: This is the name of the main configuration file defining the configurable \n aspects. The relevant sections used by the library are \"secobj\" and \"rules:\".\n - *logconfigfile*: Configuration options for the logging facility as described in the python\n library documentation. This parameter can be the same as the configuration file and is the\n name of the corresponding file.\n - *policyrules*: Same as the argument \"rules\" of the decorator \"access\". The rules defined here \n are appended to every access control list.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cramren/secobj", "keywords": "acl authorization security access", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "secobj", "package_url": "https://pypi.org/project/secobj/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/secobj/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cramren/secobj" }, "release_url": "https://pypi.org/project/secobj/0.2a-1/", "requires_dist": null, "requires_python": null, "summary": "ACL security for functions and classes", "version": "0.2a-1" }, "last_serial": 799374, "releases": { "0.1adev": [ { "comment_text": "", "digests": { "md5": "7c49a318778770882076a8b451b07637", "sha256": "43f2692b4fe38853dcdf056c2e827f9d1212d56f6083a3dab37c340fcd8f5498" }, "downloads": -1, "filename": "secobj-0.1adev-py2.7.egg", "has_sig": false, "md5_digest": "7c49a318778770882076a8b451b07637", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 42892, "upload_time": "2012-08-24T09:08:58", "url": "https://files.pythonhosted.org/packages/bd/1d/15fff848052d284f503e969973e191d1ee17e8ae1b14bb9632a681b5a320/secobj-0.1adev-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "a0029905a7682b9a1be3d462edfa3f0a", "sha256": "15a59ae100fa6258f3d4ed8004b3f14fd28f2ca236a29484c8698700b5621d13" }, "downloads": -1, "filename": "secobj-0.1adev.tar.gz", "has_sig": false, "md5_digest": "a0029905a7682b9a1be3d462edfa3f0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11918, "upload_time": "2012-08-24T09:08:56", "url": "https://files.pythonhosted.org/packages/73/66/25211b4a8aab656e84123734179de72a4e19533273ec438380da56a6dcb3/secobj-0.1adev.tar.gz" } ], "0.2a": [ { "comment_text": "", "digests": { "md5": "799e6ebb0399c759160656de9d611d26", "sha256": "111391b47d00e54f8ec0f2307d5fb2c7bee1845a987b1d5ee897558eefd24f00" }, "downloads": -1, "filename": "secobj-0.2a-py2.7.egg", "has_sig": false, "md5_digest": "799e6ebb0399c759160656de9d611d26", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44770, "upload_time": "2012-08-28T11:22:52", "url": "https://files.pythonhosted.org/packages/b6/44/503b849991f25ac3ea55d3e06736f3ef81287c184011a05fe55d95466749/secobj-0.2a-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "e458f0f8d9bd3e18f576a395a08b22d6", "sha256": "9e2ace3ef809a7e654fd7d2469a73028983e6ecbec4ce4257cfa6fe3cf8ed214" }, "downloads": -1, "filename": "secobj-0.2a.tar.gz", "has_sig": false, "md5_digest": "e458f0f8d9bd3e18f576a395a08b22d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15417, "upload_time": "2012-08-28T11:22:50", "url": "https://files.pythonhosted.org/packages/df/54/bdfa9e1ea596b1988783cb649bbc6a4260d95e5ad538317f85929666253f/secobj-0.2a.tar.gz" } ], "0.2a-1": [ { "comment_text": "", "digests": { "md5": "5177d8466b8b7397608b7d902b3202a2", "sha256": "98d413acffacdba28bfad9250ffc7797da28aef0635ff114c5336b0aebb9e023" }, "downloads": -1, "filename": "secobj-0.2a_1-py2.7.egg", "has_sig": false, "md5_digest": "5177d8466b8b7397608b7d902b3202a2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44771, "upload_time": "2012-08-28T12:15:13", "url": "https://files.pythonhosted.org/packages/fd/b6/ea867f52e5465d6636c1f677effef15d2eb7b38a3feb27646ebfe721334c/secobj-0.2a_1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "77433cbc7f53b799cd1e01d73b87cfef", "sha256": "5efe4e5fdd21745ec909f6c221bb71b801660dfb4dbb65e414189c2a72644f6d" }, "downloads": -1, "filename": "secobj-0.2a-1.tar.gz", "has_sig": false, "md5_digest": "77433cbc7f53b799cd1e01d73b87cfef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15414, "upload_time": "2012-08-28T12:15:12", "url": "https://files.pythonhosted.org/packages/47/c6/dc8086760d423872c7219a127e3f608b4ea0f607fa26cc943013bb9cbbe1/secobj-0.2a-1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5177d8466b8b7397608b7d902b3202a2", "sha256": "98d413acffacdba28bfad9250ffc7797da28aef0635ff114c5336b0aebb9e023" }, "downloads": -1, "filename": "secobj-0.2a_1-py2.7.egg", "has_sig": false, "md5_digest": "5177d8466b8b7397608b7d902b3202a2", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 44771, "upload_time": "2012-08-28T12:15:13", "url": "https://files.pythonhosted.org/packages/fd/b6/ea867f52e5465d6636c1f677effef15d2eb7b38a3feb27646ebfe721334c/secobj-0.2a_1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "77433cbc7f53b799cd1e01d73b87cfef", "sha256": "5efe4e5fdd21745ec909f6c221bb71b801660dfb4dbb65e414189c2a72644f6d" }, "downloads": -1, "filename": "secobj-0.2a-1.tar.gz", "has_sig": false, "md5_digest": "77433cbc7f53b799cd1e01d73b87cfef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15414, "upload_time": "2012-08-28T12:15:12", "url": "https://files.pythonhosted.org/packages/47/c6/dc8086760d423872c7219a127e3f608b4ea0f607fa26cc943013bb9cbbe1/secobj-0.2a-1.tar.gz" } ] }