{"id":25176233,"url":"https://github.com/redturtle/pas.plugins.proxy","last_synced_at":"2025-04-04T01:40:32.280Z","repository":{"id":57450946,"uuid":"29535488","full_name":"RedTurtle/pas.plugins.proxy","owner":"RedTurtle","description":"A PAS plugin for proxy user's roles to other users","archived":false,"fork":false,"pushed_at":"2015-05-15T09:56:49.000Z","size":360,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-12T16:51:36.870Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedTurtle.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-20T15:05:29.000Z","updated_at":"2015-05-08T16:30:18.000Z","dependencies_parsed_at":"2022-09-26T17:31:21.840Z","dependency_job_id":null,"html_url":"https://github.com/RedTurtle/pas.plugins.proxy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fpas.plugins.proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fpas.plugins.proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fpas.plugins.proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedTurtle%2Fpas.plugins.proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedTurtle","download_url":"https://codeload.github.com/RedTurtle/pas.plugins.proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247107820,"owners_count":20884795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-09T13:16:41.471Z","updated_at":"2025-04-04T01:40:32.260Z","avatar_url":"https://github.com/RedTurtle.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"A **PAS plugin** for Plone where administrators (or normal users) can\n**delegate their own permissions** to other users.\n\n.. contents:: **Table fo contents**\n\nIntroduction\n============\n\nThis product will add a role sharing control panel to you site, where a user\n(the **delegator**) will be able to *proxy* his roles to another user\n(**delegate**).\n\nWhile the delegation is active, the delegate will be able to act as the\ndelegator, as he own *same roles* (both global and local).\n\nEvery delegate will also gain a new *Delegate* role (this role will not be\nregistered in your Plone site, this feature must be activated by 3rd party\nor manual configuration).\n\nThe \"*Proxy Roles Settings*\" control panel\n==========================================\n\nThe plugin configuration is composed by a sequence of delegator/delegate\ncouples.\n\n.. image:: https://github.com/RedTurtle/pas.plugins.proxy/blob/8e78343869d00154b45395d007c66c841357e285/docs/pas.plugins.proxy-0.1.0-01.png\n   :alt: Proxy Roles Settings\n\nBy default *all* users can access this panel, with a big difference:\n\n* Managers and Site Administrators (who own\n  \"``pas.plugins.proxy: Manage proxy roles``\" permission) can add and delete\n  roles delegations for all users\n* Other members can only delegate for themself. If you don't want to give this\n  power to normal users you can just remove the\n  \"``pas.plugins.proxy: Access proxy roles panel``\" permission.\n\nOther rules:\n\n* You can only delegate existings users\n* Cannot cross-delegate (a user can't be both delegator and delegate of\n  another)\n* A delegator can proxy his roles as many times as he need\n* A user can be delegate of many users \n\nGroups\n======\n\nThe PAS plugin act also as a **group plugin**: the delegate will automatically gets\nall roles given to groups where the delegator is in. \n\nAsk for groups of a delegate will return you also groups of his delegator.\nInstead: asking for users inside a group will not return users that seems part of\nthe groups thanks to delegation process.\n\nLimitations and Troubleshooting\n===============================\n\nRule Number One\n---------------\n\nThe most important thing to know: the **plugin works only for currently logged\nin user** (someway similar to the Authenticated Users virtual group): if you\nquery the permissions of a delegate by code you will get nothing.\nThis is not a technical limit but a practical consequence of aggressive cache\ndone by the plugin itself, bringing us acceptable performance.\n\n*No* inheritance\n----------------\n\nDelegation works with **one-level of inheritance**: in user A is delegator of\nuser B, and user B is delegator of user C, C will not get any power from A.\nThis could probably possibile in future (if so: optionally) but there are some\nimplications about performance and avoiding circular delegations loops.\n\nKnowing delegation status\n-------------------------\n\nThere's no simple way to know if a user is able to perform an action because he\nhas sufficient permissions or because he get the needed permission thanks to\na delegator's role.\nNeither the *Delegate* role can help too much for this, as it's given every\ntime a role's proxy is active on the current context.\n\nLimiting plugin effects\n-----------------------\n\nAs said, this product implements three kind of plugins:\n\n* local roles\n* global roles\n* groups\n\n...all of them enabled by default.\nYou can freely access ZMI and disable one or more plugins (for example: you could\nnot like the groups propagation effect).\n\nAuthors\n=======\n\nThis product was developed by RedTurtle Technology team.\n\n.. image:: http://www.redturtle.it/redturtle_banner.png\n   :alt: RedTurtle Technology Site\n   :target: http://www.redturtle.it/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredturtle%2Fpas.plugins.proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredturtle%2Fpas.plugins.proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredturtle%2Fpas.plugins.proxy/lists"}