{
"info": {
"author": "Alisue",
"author_email": "lambdalisue@hashnote.net",
"bugtrack_url": null,
"classifiers": [
"Framework :: Django",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Topic :: Internet :: WWW/HTTP"
],
"description": "``django-object-permissiono`` apply object permission feature to Django models\n\nInstall\n===========================================\n::\n\n\tsudo pip install django-object-permission\n\nor::\n\n sudo pip install git+git://github.com/lambdalisue/django-object-permission.git#egg=django-object-permission\n\n\nHow to Use\n==========================================\n\n1. Append 'object_permission' to ``INSTALLED_APPS``\n\n2. Append 'object_permission.backends.ObjectPermBackend' to ``AUTHENTICATION_BACKENDS``\n\n3. Add 'ophandler.py' to your app directory like 'admin.py'\n\n4. Write model specific ObjectPermHandler and register it with model to ``object_permission.site``\n\nSee `object_permission_test `_\nfor more detail. If you want to see Old-style storategy, see `README_old.rst `_ or\n`object_permission_test_deprecated `_\n\nExample mini blog app\n=========================================\n\n``models.py``::\n\t\n\tfrom django.db import models\n\tfrom django.contrib.auth.models import User\n\n\t# django-author: useful for adding automatically update author field\n\tfrom author.decorators import with_author\n\t\n\t@with_author\n\tclass Entry(models.Model):\n\t\tPUB_STATES = (\n\t\t\t('public', 'public entry'),\n\t\t\t('protected', 'login required'),\n\t\t\t('private', 'secret entry'),\n\t\t)\n\t\tpub_state = models.CharField('publish status', choices=PUB_STATES)\n\t\ttitle = models.CharField('title', max_length=140)\n\t\tbody = models.TextField('body')\n\n\t\t# ...\n\n``ophandler.py``::\n\n from object_permission import site\n # AuthorObjectPermHandler need 'django-observer' and required 'author'\n # field (the author field is automatically added by 'with_author' decorator)\n from object_permission.handlers import ObjectPermHandler\n\n from models import Entry\n\n class EntryObjectPermHandler(ObjectPermHandler):\n \"\"\"ObjectPermHandler for model which has author field\n\n This handler contribute..\n\n 1. Manager permission to instance author\n 2. Viewer permission to authenticated user\n 3. Viewer permission to anonymous user if reject_anonymous is False\n\n \"\"\"\n author_field = 'author'\n reject_anonymous = False\n\n def get_author(self):\n \"\"\"get author field value\"\"\"\n return getattr(self.instance, self.author_field)\n\n def setup(self):\n # watch author field\n self.watch(self.author_field)\n\n def updated(self, attr):\n # Author has full access\n self.manager(self.get_author())\n # Authenticated user can view\n self.viewer(None)\n if self.reject_anonymous:\n self.reject('anonymous')\n else:\n self.viewer('anonymous')\n # Register to object_permission site like django.contrib.admin\n site.register(Entry, EntryObjectPermHandler)\n \n``views.py``::\n\n from django.views.generic import ListView\n from django.views.generic import DetailView\n from django.views.generic import CreateView\n from django.views.generic import UpdateView\n from django.views.generic import DeleteView\n from django.core.urlresolvers import reverse\n\n from object_permission.decorators import permission_required\n\n from models import Entry\n from forms import EntryForm\n\n class EntryListView(ListView):\n model = Entry\n\n class EntryDetailView(DetailView):\n model = Entry\n slug_field = 'title'\n\n # decorate 'dispatch' method without method_decorator\n @permission_required('blog.view_entry')\n def dispatch(self, *args, **kwargs):\n return super(EntryDetailView, self).dispatch(*args, **kwargs)\n\n # You can use the decorator as View class decorator\n # Then automatically decorate 'dispatch' method of the View\n @permission_required('blog.add_entry')\n class EntryCreateView(CreateView):\n form_class = EntryForm\n model = Entry\n\n @permission_required('blog.change_entry')\n class EntryUpdateView(UpdateView):\n form_class = EntryForm\n model = Entry\n\n @permission_required('blog.delete_entry')\n class EntryDeleteView(DeleteView):\n model = Entry\n def get_success_url(self):\n return reverse('blog-entry-list')\n\n``index.html``::\n\n\t{% load object_permission_tags %}\n\t\n\t\n\t\tdjango-object-permission example\n\t\n\t\n\t\t{% pif 'blog.add_entry' of None or 'blog.change_entry' of object or 'blog.delete_entry' of object %}\n\t\t\n\t\t\tToolbox
\n\t\t\t{% pif 'blog.add_entry' of object %}\n\t\t\t\t\n\t\t\t\tAdd New Entry\n\t\t\t{% endpif %}\n\t\t\t{% pif object and 'blog.change_entry' of object %}\n\t\t\t\t\n\t\t\t\tChange this entry\n\t\t\t{% endpif %}\n\t\t\t{% pif object and 'blog.delete_entry' of object %}\n\t\t\t\t\n\t\t\t\tDelete this entry\n\t\t\t{% endpif%}\n\t\t{% endpif %}\n\t\n\t\n\nSettings\n=========================================\n``OBJECT_PERMISSION_EXTRA_DEFAULT_PERMISSIONS``\n A list of extra default permission for all models. Django contribute\n 'add', 'change' and 'delete' permission for all models as default.\n\n Default: ``['view']``\n\n``OBJECT_PERMISSION_BUILTIN_TEMPLATETAGS``\n If this is True, then ``pif`` will be builtin templatetags which mean you don't\n need to add ``{% load object_permission_tags %}`` before use ``pif`` tag.\n\n Default: ``True``\n\n``OBJECT_PERMISSION_AUTODISCOVER``\n To enable autodiscover feature. object permission automatically search 'ophandler'\n (or ``OBJECT_PERMISSION_HANDLER_MODULE_NAME``) module for each apps and load.\n\n Default: ``True``\n\n``OBJECT_PERMISSION_HANDLER_MODULE_NAME``\n Used for searching object permission handler module for each apps.\n\n Default: ``'ophandler'``\n\n``OBJECT_PERMISSION_DEPRECATED``\n If this is True then all deprecated feature is loaded. You should not turnd on\n this unless your project is too large to do refactaring because deprecated feature \n is no longer supported and limited.\n\n will removed in version 0.5\n\n``OBJECT_PERMISSION_MODIFY_FUNCTION`` (deprecated)\n set the name of function when object is saved for modify object permission for the object.\n the default value is ``modify_object_permission``\n\n``OBJECT_PERMISSION_MODIFY_M2M_FUNCTION`` (deprecated)\n set the name of function when object's ManyToMany relation is updated for modify object permission\n for the object. the default value is ``modify_object_permission_m2m``",
"description_content_type": null,
"docs_url": null,
"download_url": "https://github.com/lambdalisue/django-object-permission/tarball/master",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/lambdalisue/django-object-permission",
"keywords": "django permission object",
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "django-object-permission",
"package_url": "https://pypi.org/project/django-object-permission/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/django-object-permission/",
"project_urls": {
"Download": "https://github.com/lambdalisue/django-object-permission/tarball/master",
"Homepage": "https://github.com/lambdalisue/django-object-permission"
},
"release_url": "https://pypi.org/project/django-object-permission/0.5.2/",
"requires_dist": null,
"requires_python": null,
"summary": "Add object specific permission for particualr User/Group, All authenticated user or Anonymous user",
"version": "0.5.2"
},
"last_serial": 790193,
"releases": {
"0.1rc1": [],
"0.1rc2": [
{
"comment_text": "built for Linux-2.6.38-8-generic-pae-i686-with-glibc2.4",
"digests": {
"md5": "8ea36d9584056f58306f8f5001b6a2d3",
"sha256": "1a509e2532c969e1ac356192f90ca007c13b5f3e8d7005d202e39851813c8f70"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc2.linux-i686.tar.gz",
"has_sig": false,
"md5_digest": "8ea36d9584056f58306f8f5001b6a2d3",
"packagetype": "bdist_dumb",
"python_version": "any",
"requires_python": null,
"size": 20472,
"upload_time": "2011-06-11T06:24:35",
"url": "https://files.pythonhosted.org/packages/97/68/8e46f2d0907e85819e1d56588097299e002ffce7e9ff16a9a26d471aace5/django-object-permission-0.1rc2.linux-i686.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "91ca48677ed8018592780fc41d263a45",
"sha256": "feb67b461876ea6b997ab7ff3230282d87c0f7d84642c730f30b24b2fc599207"
},
"downloads": -1,
"filename": "django_object_permission-0.1rc2-py2.7.egg",
"has_sig": false,
"md5_digest": "91ca48677ed8018592780fc41d263a45",
"packagetype": "bdist_egg",
"python_version": "2.7",
"requires_python": null,
"size": 30711,
"upload_time": "2011-06-11T06:24:43",
"url": "https://files.pythonhosted.org/packages/31/21/680bf175dae74f25ad487c5d6403f09a797c8eb13316a18b86418048b29b/django_object_permission-0.1rc2-py2.7.egg"
}
],
"0.1rc3": [
{
"comment_text": "built for Linux-2.6.38-8-generic-pae-i686-with-glibc2.4",
"digests": {
"md5": "4528ee6a17386365dd823ab35de006ed",
"sha256": "ea8fd4cc7bc5b30d58c1731c012ff0a8ba1fb31451ae25452db25ded23edcf98"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc3.linux-i686.tar.gz",
"has_sig": false,
"md5_digest": "4528ee6a17386365dd823ab35de006ed",
"packagetype": "bdist_dumb",
"python_version": "any",
"requires_python": null,
"size": 20613,
"upload_time": "2011-06-12T04:52:43",
"url": "https://files.pythonhosted.org/packages/ba/6c/c5a8dde87c1438215dfb0b494edbdadefafd39fb16601f911e8487b4f665/django-object-permission-0.1rc3.linux-i686.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "306a34d0f1ed1c8cdb4b01f400532672",
"sha256": "fd6841e892bf5bc9e4ea59a1889e280a668eeaf70d5568f53491a2c178d35875"
},
"downloads": -1,
"filename": "django_object_permission-0.1rc3-py2.7.egg",
"has_sig": false,
"md5_digest": "306a34d0f1ed1c8cdb4b01f400532672",
"packagetype": "bdist_egg",
"python_version": "2.7",
"requires_python": null,
"size": 30761,
"upload_time": "2011-06-12T04:52:51",
"url": "https://files.pythonhosted.org/packages/6d/eb/797c18d3ac93c45aac29ad074d720962dbeda2472cc36fce86fe666a4eca/django_object_permission-0.1rc3-py2.7.egg"
}
],
"0.1rc4": [
{
"comment_text": "",
"digests": {
"md5": "1dc6fe7b22111e2c53053f4f046c8197",
"sha256": "7a128d041f051573502a912e34f60cda3bc4e0b799fe5e7f5dc9660395f53fa1"
},
"downloads": -1,
"filename": "django_object_permission-0.1rc4-py2.7.egg",
"has_sig": false,
"md5_digest": "1dc6fe7b22111e2c53053f4f046c8197",
"packagetype": "bdist_egg",
"python_version": "2.7",
"requires_python": null,
"size": 30903,
"upload_time": "2011-06-12T08:41:23",
"url": "https://files.pythonhosted.org/packages/4f/aa/de3537c5fcca64252ef2fcbe4d5cb64dcbc1388d77d74ac85bbdb576b304/django_object_permission-0.1rc4-py2.7.egg"
},
{
"comment_text": "",
"digests": {
"md5": "35462bea5fe16c44ac41c4073bc01954",
"sha256": "9e6939a970188f88fcf29b02a56c25445ea2557baa712c37ea827bb3cb17c31d"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc4.tar.gz",
"has_sig": false,
"md5_digest": "35462bea5fe16c44ac41c4073bc01954",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10654,
"upload_time": "2011-06-12T08:41:06",
"url": "https://files.pythonhosted.org/packages/c9/23/753647c43b599a72f9db183e8ebbae4798361670f5349497b4b56d19ec02/django-object-permission-0.1rc4.tar.gz"
}
],
"0.1rc5": [
{
"comment_text": "",
"digests": {
"md5": "243d8683357780bc9a5842334d46227a",
"sha256": "a307ee7474879adde27e41a9ec2fcc41d2350a79afae5c1e36c7dd87f7b3eb4d"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc5.tar.gz",
"has_sig": false,
"md5_digest": "243d8683357780bc9a5842334d46227a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10656,
"upload_time": "2011-12-12T08:24:40",
"url": "https://files.pythonhosted.org/packages/19/e0/0498ce18b60475c1491126e15f29b5c491b7c2f38dcef9c1e80b9204e9d1/django-object-permission-0.1rc5.tar.gz"
}
],
"0.1rc6": [
{
"comment_text": "",
"digests": {
"md5": "3a29174cf7c7a92666fb4e7739b09829",
"sha256": "efe5d4ffe9b317c14b16532fb9901804e7f7d6811b98efdef93122c1cd85ea20"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc6.tar.gz",
"has_sig": false,
"md5_digest": "3a29174cf7c7a92666fb4e7739b09829",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10762,
"upload_time": "2011-12-12T19:06:22",
"url": "https://files.pythonhosted.org/packages/c5/a6/7295050ff8400f5eaaf72713a3bbad9b64c2a5fe35723644a216de8fd906/django-object-permission-0.1rc6.tar.gz"
}
],
"0.1rc7": [
{
"comment_text": "",
"digests": {
"md5": "ea56531ce346bb72a6fd191f63dbaf9f",
"sha256": "4beb8b5fba927d1caecf5e48831f077a474ddd67956167d3e962bf38c2571763"
},
"downloads": -1,
"filename": "django-object-permission-0.1rc7.tar.gz",
"has_sig": false,
"md5_digest": "ea56531ce346bb72a6fd191f63dbaf9f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11109,
"upload_time": "2011-12-13T16:17:04",
"url": "https://files.pythonhosted.org/packages/93/72/eb8c8311d3ff59989189f6024044ef246ccb0ea10e0082f2a5d90b11a71a/django-object-permission-0.1rc7.tar.gz"
}
],
"0.2rc1": [
{
"comment_text": "",
"digests": {
"md5": "391659cfe6e11f5f275beecdf15cf408",
"sha256": "bef987cd612e188f9cd5b1187c8a783ef2ef59d314504f620bc53804b55172b4"
},
"downloads": -1,
"filename": "django-object-permission-0.2rc1.tar.gz",
"has_sig": false,
"md5_digest": "391659cfe6e11f5f275beecdf15cf408",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 15564,
"upload_time": "2011-12-23T14:52:05",
"url": "https://files.pythonhosted.org/packages/70/11/be5d2a09ec777320ed53c8b796311f16653ccc3210d315f8278ed03d2e7b/django-object-permission-0.2rc1.tar.gz"
}
],
"0.3rc1": [
{
"comment_text": "",
"digests": {
"md5": "50edfdc287b4a4e956cedb5b7cf995ab",
"sha256": "bb476e1afa24ee5a33cd6eacd4561ea305d49780e9dd6c62165d076e38c758dc"
},
"downloads": -1,
"filename": "django-object-permission-0.3rc1.tar.gz",
"has_sig": false,
"md5_digest": "50edfdc287b4a4e956cedb5b7cf995ab",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60324,
"upload_time": "2012-01-12T06:30:55",
"url": "https://files.pythonhosted.org/packages/bd/10/947e546776ea3aa94eea14a4747bed809469e34bc5c688988470bf7bfe33/django-object-permission-0.3rc1.tar.gz"
}
],
"0.3rc2": [
{
"comment_text": "",
"digests": {
"md5": "73b84b5e7aff579d99807f64db4c74f6",
"sha256": "fcf278a9a5d93f45a25a505e74f97544d6991da7318d4fe6ae76a908e4c42656"
},
"downloads": -1,
"filename": "django-object-permission-0.3rc2.tar.gz",
"has_sig": false,
"md5_digest": "73b84b5e7aff579d99807f64db4c74f6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19255,
"upload_time": "2012-01-12T06:34:41",
"url": "https://files.pythonhosted.org/packages/0e/12/d7dd6c1facc9585d4c81ebbf3971895e99a3018575c096c293be573ddbe0/django-object-permission-0.3rc2.tar.gz"
}
],
"0.3rc3": [
{
"comment_text": "",
"digests": {
"md5": "30130b0fa3840f250253865dde96ab76",
"sha256": "383dddba2e5826fd947af41561f6016428b4f8193d9f2890526703ab1beb7660"
},
"downloads": -1,
"filename": "django-object-permission-0.3rc3.tar.gz",
"has_sig": false,
"md5_digest": "30130b0fa3840f250253865dde96ab76",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60321,
"upload_time": "2012-01-12T06:36:03",
"url": "https://files.pythonhosted.org/packages/f2/6f/e4f3c6b20f9c4f5a1e62f829a679d1153dd5491723767dc2b57d15b56f66/django-object-permission-0.3rc3.tar.gz"
}
],
"0.4-2-g2274": [
{
"comment_text": "",
"digests": {
"md5": "7e194d31bd7bd2f668a97b7a1c9ba27f",
"sha256": "820c6e103dfad792404dfd56147859606a166b4e8f38b29f90429d6a5502c04f"
},
"downloads": -1,
"filename": "django_object_permission-0.4_2_g2274-py2.7.egg",
"has_sig": false,
"md5_digest": "7e194d31bd7bd2f668a97b7a1c9ba27f",
"packagetype": "bdist_egg",
"python_version": "2.7",
"requires_python": null,
"size": 125228,
"upload_time": "2012-01-15T05:22:48",
"url": "https://files.pythonhosted.org/packages/40/b3/597d2e2699f29c180d42bc3e39a1d603bcf41e2e62226477bdc237422bd4/django_object_permission-0.4_2_g2274-py2.7.egg"
},
{
"comment_text": "",
"digests": {
"md5": "6d6ec2cbec27ba05b392ddda027b6bbe",
"sha256": "36bd51be285acc04870bf61d31a62255d98e445247737807b665d945ac75c1e5"
},
"downloads": -1,
"filename": "django-object-permission-0.4-2-g2274.tar.gz",
"has_sig": false,
"md5_digest": "6d6ec2cbec27ba05b392ddda027b6bbe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 59102,
"upload_time": "2012-01-15T05:22:45",
"url": "https://files.pythonhosted.org/packages/88/95/f9fe3f7ea6119c5e2e590627a57c33ca9658a83fe5775dca4d05027ed1c0/django-object-permission-0.4-2-g2274.tar.gz"
}
],
"0.4-3-g122b": [
{
"comment_text": "",
"digests": {
"md5": "0d05421b4b020b7c7587ac3d962f4dfb",
"sha256": "344e33a2b75d7335e27c479298e0c8b1196a0ab4b411e4d1352080287996485e"
},
"downloads": -1,
"filename": "django-object-permission-0.4-3-g122b.tar.gz",
"has_sig": false,
"md5_digest": "0d05421b4b020b7c7587ac3d962f4dfb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 59017,
"upload_time": "2012-02-18T19:44:34",
"url": "https://files.pythonhosted.org/packages/9e/f7/1d872f18c0b010ba66db68597f4dc1402f5c6be0ae132a575168a2d139ce/django-object-permission-0.4-3-g122b.tar.gz"
}
],
"0.4rc1": [
{
"comment_text": "",
"digests": {
"md5": "037fdf3d85667e454bfd13a0bc5e2013",
"sha256": "54f43251453bebc003e54cb065c655ffb72a3490f41bf7ad5704dc196e8753e9"
},
"downloads": -1,
"filename": "django-object-permission-0.4rc1.tar.gz",
"has_sig": false,
"md5_digest": "037fdf3d85667e454bfd13a0bc5e2013",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60523,
"upload_time": "2012-01-12T12:24:56",
"url": "https://files.pythonhosted.org/packages/e8/85/ea23cf2758d443b3c28a8151e075eb5a9a215c4ecd759e72e340679e630f/django-object-permission-0.4rc1.tar.gz"
}
],
"0.4rc2": [
{
"comment_text": "",
"digests": {
"md5": "f59c011b8b0cd4c53386bc81a4d43648",
"sha256": "23bb88bedab361df269f50236ff1d87a3b4057d7b6f7286312150b0f8f146570"
},
"downloads": -1,
"filename": "django-object-permission-0.4rc2.tar.gz",
"has_sig": false,
"md5_digest": "f59c011b8b0cd4c53386bc81a4d43648",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 60565,
"upload_time": "2012-01-12T15:29:11",
"url": "https://files.pythonhosted.org/packages/74/32/4ff42e2f4f8904a041b037079480e88f16caf65d774d1448e020a97c4bbf/django-object-permission-0.4rc2.tar.gz"
}
],
"0.4rc3": [
{
"comment_text": "",
"digests": {
"md5": "0cf4ce6fbc5542885a606610050306bc",
"sha256": "68240b800e5512171fc09f7b9595e018dcc68f70c6f3a4adf567666b0e4205e4"
},
"downloads": -1,
"filename": "django-object-permission-0.4rc3.tar.gz",
"has_sig": false,
"md5_digest": "0cf4ce6fbc5542885a606610050306bc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 58790,
"upload_time": "2012-01-14T05:08:55",
"url": "https://files.pythonhosted.org/packages/84/ad/9efd86a68bc059cc1359cb18f933e0648a99ef4571746e05fe92732a9d63/django-object-permission-0.4rc3.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "adce7bc39f96810c6913de7678a7ef23",
"sha256": "0555b1292b70079eff2fd22bbd6b0b675d72144f2414d6b84925b8c1b78ee56f"
},
"downloads": -1,
"filename": "django-object-permission-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "adce7bc39f96810c6913de7678a7ef23",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 37986,
"upload_time": "2012-02-28T08:43:16",
"url": "https://files.pythonhosted.org/packages/19/b3/17a796e41af137eee5abffa600587e1fd9620de679aeca36c7dd3743d7bd/django-object-permission-0.5.0.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "ad89d7525cc9af535301b1a03c45dc57",
"sha256": "ddaca4f3fc812daf30ed9e920abb5bd1732152db0d5ab121d7434edb265e05de"
},
"downloads": -1,
"filename": "django-object-permission-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "ad89d7525cc9af535301b1a03c45dc57",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38047,
"upload_time": "2012-02-28T09:02:27",
"url": "https://files.pythonhosted.org/packages/6f/b0/bd7a4ef25242fa9772d2772667052e1eb1eba5090b517221e18bdd24f1a6/django-object-permission-0.5.1.tar.gz"
}
],
"0.5.2": [
{
"comment_text": "",
"digests": {
"md5": "256745b5a513d455043287dc8ab0f16a",
"sha256": "0a1b15dc87c6a8455008a5b8a8b8a67bdc785139326d70257894f9ff30668048"
},
"downloads": -1,
"filename": "django-object-permission-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "256745b5a513d455043287dc8ab0f16a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38057,
"upload_time": "2012-02-28T14:56:06",
"url": "https://files.pythonhosted.org/packages/84/f2/8f81dd2fa11423e18c0df0d05c0a6530ca825d54a98f53c62fafc177dcb5/django-object-permission-0.5.2.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "256745b5a513d455043287dc8ab0f16a",
"sha256": "0a1b15dc87c6a8455008a5b8a8b8a67bdc785139326d70257894f9ff30668048"
},
"downloads": -1,
"filename": "django-object-permission-0.5.2.tar.gz",
"has_sig": false,
"md5_digest": "256745b5a513d455043287dc8ab0f16a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38057,
"upload_time": "2012-02-28T14:56:06",
"url": "https://files.pythonhosted.org/packages/84/f2/8f81dd2fa11423e18c0df0d05c0a6530ca825d54a98f53c62fafc177dcb5/django-object-permission-0.5.2.tar.gz"
}
]
}