{"_id":"@alitajs/umi-plugin-authority","_rev":"8-da12a7adf37ccd4085558a08e48adec7","name":"@alitajs/umi-plugin-authority","dist-tags":{"latest":"0.5.0"},"versions":{"0.2.0":{"name":"@alitajs/umi-plugin-authority","version":"0.2.0","description":"Umi plugin for authority management.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["umi"],"license":"MIT","peerDependencies":{"@umijs/plugin-initial-state":"2.x","@umijs/plugin-model":"2.x","umi":"3.x"},"dependencies":{"@pansy/policy":"^0.4.0"},"publishConfig":{"access":"public"},"_id":"@alitajs/umi-plugin-authority@0.2.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-svOQznpOvxPRknR3hpaOOmOPxqfSNhoL3wUw5IBGJcudIkDIlKJrUpM8HSpY4KiZj4y6Hy+4hHMbBoyPxflfUQ==","shasum":"e7c1dad6172bc632c76a8998de14df93ef876cd5","tarball":"https://registry.npmjs.org/@alitajs/umi-plugin-authority/-/umi-plugin-authority-0.2.0.tgz","fileCount":40,"unpackedSize":39100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWch9CRA9TVsSAnZWagAA448P/iMoHOz/AHNEVHZegzLN\nFN/70Q6nmjk8NJB/cnJxOqzsxzguhzFSkeZZlh5Pb7a8X6C/iXB/tStxofnZ\nxy5Ep5nkdXWT4NG53eSiZCtnYfw+cFkGofOGwDEvWcpAkQt2GQMqXT3qLp3q\nLy2mAXJBijanwuvvzWilZ3RzEqUxnFEI5LZXwQsrpUuC7JH0LjlAm/0UdO1T\n4+K1ApshjHQ08R7CclcrIqSxOTu00ia04FgPXG66OiK15JfUYWeRaZowyIEv\nOkUEydHa+cq7AQ4kWRPZpoCnpv8JFW+VwGXOLVA32bfH/1IuMzNx7d2bHDUo\ngonrC2SC7za2JoBU/kFefQJigFNPrSgRhskkeaCbDCUa6H+qb6Wps24/baqK\nHZ1buSit1GWPkPOom3tNQDD606S+nggNGkXRDI7Hlk5+QVwAsqUezfDd5WMD\n5VlGHPOZnksif3m0ZMhO7DqsYhdn/lku8t75AYZysJMrWeOOhguCFr2cbenb\nQ+N9sO4A3Nu7HGjWC/e5Xfl8pmH/Iw76Mzb6yYM6T5rgR23ssidcU3xSjhTD\nuxFXGYQKnNRH8q9/5ABdFBgUrzfnWidbXXqyRVurrkR3tqyHitEqEjDqEUcS\n0orNR8Eh0vHm1YmMCfUsp38fpTXLB4yi9mthPF+JlfQINzjXg9DN7xUOuo/7\n1opl\r\n=+5NP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAUKW564j/s0EDhGFpkn2RfzMwKrikS5UlBFert7zmPyAiB0CRadIMYdmdJS9XaSsXuNohpDisfErONvlYluSppgFw=="}]},"maintainers":[{"name":"hang1017","email":"437132124@qq.com"},{"name":"sorrycc","email":"sorrycc@gmail.com"},{"name":"cjy0208","email":"fanluan058@gmail.com"},{"name":"shawdanon","email":"shawdanon@foxmail.com"},{"name":"wangxingkang","email":"156148958@qq.com"},{"name":"imhele","email":"work@imhele.com"},{"name":"xiaohuoni","email":"448627663@qq.com"}],"_npmUser":{"name":"wangxingkang","email":"156148958@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/umi-plugin-authority_0.2.0_1599719549221_0.4504815897746659"},"_hasShrinkwrap":false},"0.3.0":{"name":"@alitajs/umi-plugin-authority","version":"0.3.0","description":"Umi plugin for authority management.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["umi"],"license":"MIT","peerDependencies":{"@umijs/plugin-initial-state":"2.x","@umijs/plugin-model":"2.x","umi":"3.x"},"dependencies":{"@pansy/policy":"^0.4.0"},"publishConfig":{"access":"public"},"_id":"@alitajs/umi-plugin-authority@0.3.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-eAxbQK2qaX0nN3Vs17K7xjMCGt7d/9kNhvTE2GBX97nD+mu0wtRhrteVYXhb3QItZV9UHlStxDH970FSWM9pBA==","shasum":"b745c0d89482f3f70bb3a61b1c2f6445963a897f","tarball":"https://registry.npmjs.org/@alitajs/umi-plugin-authority/-/umi-plugin-authority-0.3.0.tgz","fileCount":40,"unpackedSize":39749,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWc1QCRA9TVsSAnZWagAA3dYQAJ8xrMfWXWzarao5J/2U\n6kTz3JINtqNy6L2l+LP2Ss/zo1HQV8fSCSTIkddGhlEF5uPCwzxDzkJysQ+n\nEZ4Q5jdXBwL80GjBgn41dYXVkSUJfE61/UEsmO1s1HZ4i3zAW4FzGwaQvdHk\nUmMVikqUdH0SYndsINv/DYMj07JchKA012dwtpOWtowemLmVmewXAp3rxt+L\nA36A8EHqy90ds52mkqTBWtEoOa1F1TXDOKH25qHwpYri3BAJYpuKI5h1vimo\n6TEhUDqymKKlGlU6r/Rx+qhoqKD4ipirAz+bbRDvkd5upLEJHmBBT97oHJxN\nxEIjnsrbnY4zrUxSoxW5UnW69IHafp8YZBQaD0fXLQat3hYO3u/Ydn4cFDJW\n+Or/he49IECu/2gi6Qnjt8jxlHddMjkU9xX+qdUvfYo2+F3pH9tjs08zZIJK\nv+HX0yKPpIIyLETY8p6gnFVQljca5eq6oXEyKIbPzYuvWZSVj25i7ifWZr+w\nB2Ynw35W3B/xKtfkx5OQIZpQ3+aA9UGsdm4EWi5ZWx/Q9Iwmwrb48hkIe7Br\ngQvlPN9GFBnmKNpF/7tsR173E/X+9bFVhDXQXM/6ddz9EMVgTMSWzr/bHWsg\nR4lwjYGVe7D7mg1YGlXvWVWdljHJZmjsDIXn1jO/WM0zqBiseo+nD2dOfKf+\n7SR5\r\n=/pDY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpIpt2LqyE0SPRLEBmXCIZp06EqRJ1gQeHPRdmOjfKvAIhALaVHyaQPF0TJgSvYz7lf8lliCF1pZH+xpX9VzjoJOg9"}]},"maintainers":[{"name":"hang1017","email":"437132124@qq.com"},{"name":"sorrycc","email":"sorrycc@gmail.com"},{"name":"cjy0208","email":"fanluan058@gmail.com"},{"name":"shawdanon","email":"shawdanon@foxmail.com"},{"name":"wangxingkang","email":"156148958@qq.com"},{"name":"imhele","email":"work@imhele.com"},{"name":"xiaohuoni","email":"448627663@qq.com"}],"_npmUser":{"name":"wangxingkang","email":"156148958@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/umi-plugin-authority_0.3.0_1599720783868_0.9701495634190669"},"_hasShrinkwrap":false},"0.4.0":{"name":"@alitajs/umi-plugin-authority","version":"0.4.0","description":"Umi plugin for authority management.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["umi"],"license":"MIT","peerDependencies":{"@umijs/plugin-initial-state":"2.x","@umijs/plugin-model":"2.x","umi":"3.x"},"dependencies":{"@pansy/policy":"^0.4.0"},"publishConfig":{"access":"public"},"_id":"@alitajs/umi-plugin-authority@0.4.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-7NQZyXRcAESUGd+ciXz+4pVczQlj4RkhTSZhLSl9LuPCTZRipUAZcO9u2H721Vp3RzdmbiTIDj+STS9jziIeZw==","shasum":"db0d8e1667674180700e31f2bb39788bfcc9f547","tarball":"https://registry.npmjs.org/@alitajs/umi-plugin-authority/-/umi-plugin-authority-0.4.0.tgz","fileCount":40,"unpackedSize":44562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWdqHCRA9TVsSAnZWagAA/VQP/iGQYclaSxVs9SzbG59o\nxrtHOIwXadqcl8fDVQZYw5jSxAdAwbphAMOJ7E25+mK9udMgoxPYOQL77dqp\niVwLvMBiNPsEGknKw4Yyk473aBIyCVmizW8fadM++LULZxpPNvWhch2W8OvU\nP5YLhavg2SFnrmNrtvJFiELM8aEzO1kJbqvS6MgBxjoDO5jh6vTOxl9N97Ut\nphIiScaM2aAXl5WXHayQ1KNISQI/XDReRQ7j+6fYdco73bAQa92xX8lsidgQ\nEdcX6XOuuk0Xtq4rhKbdPEHOPgtE4TOFvjMp5J7+MO2tI+l8dLzOo3AZWNPO\nwzEzdWiYCgsMicVb1yu0U9l2VXmJ+HX75p2/JYe22mNVDf0ea8Gj/7nKeps3\niVGMvJnCP6+GO1a7j9HGsTYbslKxmxzBO1FBNLMulVaUKTHCXT3rUzwhZWLl\ngV5pG/KyzsKEYNsHOA6QaaYV3TsUzaWeRq732sSJT97yLYVXcCAM8yWyigR9\nWVJCGrQ9HWln6+u0l3w2VBzxDwkTCr4AirUn/V5ol+MuWti0ku4MYSSrEenB\nM4mJX9sVLICts+VQqxj9osADyUYRVt8H9FFFQ3ginDp/hhmVZMcysveU8JSG\nzVYoffJTZxxw1EIQTVKMyC+nICWmkbhYeHmIgQk+WqVjAQjed0/NAZvTyk0i\n0wdi\r\n=Pu1P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5WkgqsFtQeyxLIDChTwKj4zO4rlaqYEDXG5uXxB0KngIhAPGt/vYCy69pCVCoRbhq3p/Ov5mqlGPt8fsyCMg4YQIj"}]},"maintainers":[{"name":"hang1017","email":"437132124@qq.com"},{"name":"sorrycc","email":"sorrycc@gmail.com"},{"name":"cjy0208","email":"fanluan058@gmail.com"},{"name":"shawdanon","email":"shawdanon@foxmail.com"},{"name":"wangxingkang","email":"156148958@qq.com"},{"name":"imhele","email":"work@imhele.com"},{"name":"xiaohuoni","email":"448627663@qq.com"}],"_npmUser":{"name":"wangxingkang","email":"156148958@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/umi-plugin-authority_0.4.0_1599724166580_0.6747747125026544"},"_hasShrinkwrap":false},"0.5.0":{"name":"@alitajs/umi-plugin-authority","version":"0.5.0","description":"Umi plugin for authority management.","main":"lib/index.js","types":"lib/index.d.ts","keywords":["umi"],"license":"MIT","peerDependencies":{"@umijs/plugin-initial-state":"2.x","@umijs/plugin-model":"2.x","umi":"3.x"},"dependencies":{"@pansy/policy":"^0.5.0"},"publishConfig":{"access":"public"},"_id":"@alitajs/umi-plugin-authority@0.5.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-cPMEAeKaRuDnhzOAdKCFq/V9oi+q/BmvVhkuEsFfxppSvHSyGe4cxjDO7TE52DU5+iBKFM9JJFadIbiAumxe2g==","shasum":"8144992d487fe017dd2e993cf6f4252a39d58cbb","tarball":"https://registry.npmjs.org/@alitajs/umi-plugin-authority/-/umi-plugin-authority-0.5.0.tgz","fileCount":40,"unpackedSize":44946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXLD8CRA9TVsSAnZWagAAQngP/RyxpbbpA4D4bUfhULE9\nfE4iS8uUeB7oc4Zfg3qMYEsiK58ird5UoyIHnaDvKTA579L5CNmbFPpDoJjg\nuzDz1+vgQfY3CPDMbuFscCF+7zfcVICLtvXXL2bhbmbf9FMpfWrs8nGFi14y\nSHhq+eFXjQEagPqrrbD88YcW6n3OyogRF3WlEeN4LxSkFPb0PEKw9JyY7VQL\nA181kxU6fn5m6skq0EeuKuXOJxctEGzFklhzkoQElQWhMllEZaLH+xAokDam\nbeRzdKzCKZxMigjjZrzrbFvXQpcqsW1HoFB/mCwqzYrRc4Bxgik+7xpiGqBJ\nQfIrgyfmKWXqhDoITYM+/5xQBCeFEk1Ps7G8w6jtYvbwZysOJHR1JbfyG9uO\nUAw+5VOy/5Nwg6/xqQoV3YJHJ3ykIxSM6nnBsos1K5tcPqvNPs/a5ICcJC9X\ndrK9n0y1aaW53Wj7ZptWM3ZtJNY1oEZZyJ+APkeIrTrri++Ti6OjI2bonZTx\ndZjYDvaiW+82NpPzQsva12sCszyNxqnXvPY0oWrB6xA6JTOq99UBcEIhPNMZ\nk8WQ29sEjRKQOw1fUmp9mdr/peIYGl4R+WeYy5IPS9oyTw/q2ZmaEIdvq50w\nktvKSK+pkUhapMxEC5z37G6HJjHSW1oNdSGHYFYq7fqGCPLKthZMNrQstIHW\n9Yqz\r\n=YDTl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+Q/ghZ3yp8yJx1kzsn+jlgLnPnHjCs8vkgypd2ENA1AiEA9GXzBI2l/UVVZoStCkjx7Nf94FHhta6tO2YpQjcEkyo="}]},"maintainers":[{"name":"hang1017","email":"437132124@qq.com"},{"name":"sorrycc","email":"sorrycc@gmail.com"},{"name":"cjy0208","email":"fanluan058@gmail.com"},{"name":"shawdanon","email":"shawdanon@foxmail.com"},{"name":"wangxingkang","email":"156148958@qq.com"},{"name":"imhele","email":"work@imhele.com"},{"name":"xiaohuoni","email":"448627663@qq.com"}],"_npmUser":{"name":"wangxingkang","email":"156148958@qq.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/umi-plugin-authority_0.5.0_1599910139727_0.3203495994303205"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-10T06:32:29.011Z","0.2.0":"2020-09-10T06:32:29.336Z","modified":"2022-06-07T09:42:50.856Z","0.3.0":"2020-09-10T06:53:04.014Z","0.4.0":"2020-09-10T07:49:26.837Z","0.5.0":"2020-09-12T11:28:59.878Z"},"maintainers":[{"email":"pt370390794@126.com","name":"pengyh"},{"email":"savebtc11@gmail.com","name":"ashoka_j"},{"email":"13067111941x@gmail.com","name":"diyc"},{"email":"448627663@qq.com","name":"xiaohuoni"},{"email":"work@imhele.com","name":"imhele"},{"email":"156148958@qq.com","name":"wangxingkang"},{"email":"292973338@qq.com","name":"shawdanon"},{"email":"fanluan058@gmail.com","name":"cjy0208"},{"email":"sorrycc@gmail.com","name":"sorrycc"},{"email":"437132124@qq.com","name":"hang1017"},{"email":"1270253618@qq.com","name":"hammersjs"}],"description":"Umi plugin for authority management.","keywords":["umi"],"license":"MIT","readme":"# @alitajs/umi-plugin-authority\n\n> @alitajs/umi-plugin-authority.\n\n## 安装\n\nUsing npm:\n\n```bash\n$ npm install --save-dev @alitajs/umi-plugin-authority\n```\n\nor using yarn:\n\n```bash\n$ yarn add @alitajs/umi-plugin-authority --dev\n```\n\n## 启用方式\n\n有 `src/authority.ts` 时启用。\n\n## 介绍\n\n我们约定了 `src/authority.ts` 为我们的权限定义文件，该文件需要默认导出一个方法，导出的方法会在项目初始化时被执行。该方法需要返回一个对象。如下所示：\n\n```\n// src/authority.ts\nexport default function(initialState) {\n  const { currentUser } = initialState || {};\n\n  // actions、policies应该由于 currentUser 推导得出\n  return {\n    actions: [\n      { module: 'module1', action: 'action1' },\n      { module: 'module1', action: 'action2' },\n      { module: 'module1', action: 'action3' },\n      { module: 'module2', action: 'action1' },\n      { module: 'module2', action: 'action2' },\n    ],\n    policies: [\n      {\n        version: 1,\n        statement: [\n          {\n            effect: 'allow',\n            action: 'module1/*'\n          }\n        ]\n      }\n    ]\n  };\n}\n```\n\n其中 `initialState` 是通过初始化状态插件 @umijs/plugin-initial-state 提供的数据，你可以使用该数据来初始化你的用户权限。\n\n## API\n\n### useAuthority\n\n> API 请查看 [Policy](https://github.com/pansyjs/utils/tree/master/packages/policy)\n\n我们提供了一个 Hooks 用于在组件中获取权限相关信息，如下所示：\n\n```\nimport React from 'react';\nimport { useAuthority } from 'umi';\n\nconst PageA = props => {\n  const { foo } = props;\n  const { combinationVerify } = useAuthority();\n \n  if (combinationVerify('module1/action1')) {\n    // 存在 module1/action1 权限，则...\n  }\n \n  return <>TODO</>;\n};\nexport default PageA;\n```\n\n### Authority\n\n可以在业务组件中使用插件提供的 React hook useAuthority 以及组件 <Authority /> 对应用进行权限控制了。 组件 Authority 支持的属性如下：\n\n| 参数           | 说明                     | 类型                  | 默认值 |\n| -------------- | ------------------------ | --------------------- | ------ |\n| access        | 权限字符串                 | `string`              | --     |\n| accessible    | 直接指定权限               |   `boolean`            |  --      |\n| fallback       | 无权限时的显示             | `React.ReactNode` | --     |\n| children       | 需要控制权限的节点          | `React.ReactNode` | `Function` | --     |\n\n**注意:** `accessible` 优先级最高\n\n完整示例如下：\n\n```\nimport React from 'react';\nimport { useAuthority, Authority } from 'umi';\n\nconst PageA = props => {\n  const { foo } = props;\n  const { combinationVerify } = useAuthority();\n \n  if (combinationVerify('module1/action1')) {\n    // 存在 module1/action1 权限，则...\n  }\n \n  return (\n    <div>\n      <Authority\n        access=\"'module1/action1'\"\n        fallback={<div>Can not read foo content.</div>}\n      >\n        Foo content.\n      </Authority>\n      <Authority\n        accessible={combinationVerify('module1/action1')}\n        fallback={<div>Can not update foo.</div>}\n      >\n        Update foo.\n      </Access>\n      <Authority\n        accessible={combinationVerify('module3/action1')}\n        fallback={<div>Can not delete foo.</div>}\n      >\n        {(isMatch) => <span>权限校验结果: {isMatch}</span>}\n      </Authority>\n    </div>\n  );\n};\n```\n","readmeFilename":"README.md"}