hassnainabass/users-permissions

CakePHP的图形界面用户权限管理插件

安装: 7

依赖: 0

建议者: 0

安全: 0

星星: 1

关注者: 1

分支: 2

开放问题: 0

类型:cakephp-plugin

dev-master 2017-06-07 05:53 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:16:11 UTC


README

UsersPermissions插件允许管理员在Cakephp中为每个模块添加用户权限。它提供了一个基本界面来管理用户权限并在每个请求上执行检查。它提供类似于magento的基于复选框的用户权限表单。该插件默认使用bootstrap,但您可以更改它。它将自动获取您的Cakephp应用程序中的所有控制器和操作,并在GUI中您可以选择所有控制器或操作内的权限。

Image of UsersPermissions

要求

安装

您可以使用composer将此插件安装到您的CakePHP 3应用程序中。

安装composer包的推荐方法是

composer require  "hassnainabass/users-permissions:*"

或下载文件并将它们移动到根目录/plugins中,请将文件夹重命名为UsersPermissions

成功执行上述步骤后,请按照以下步骤操作

  • 在config/bootstrap.php中加载插件

     Plugin::load('UsersPermissions', ['routes' => true]);
    
  • 打开控制台/终端并运行以下迁移,请确保首先加载迁移插件

     bin/cake migrations migrate -p UsersPermissions
    

    或在数据库中创建以下表

    CREATE TABLE user_permissions (
      id int(11) NOT NULL AUTO_INCREMENT,
      user_id int(11) DEFAULT NULL,
      permissions text DEFAULT NULL,
      created_on timestamp NULL DEFAULT CURRENT_TIMESTAMP,
      updated_on date DEFAULT NULL,
      PRIMARY KEY (id)
    )
    ENGINE = INNODB
    AUTO_INCREMENT = 1
    CHARACTER SET latin1
    COLLATE latin1_swedish_ci;
    

    它将在您的cakephp安装的config/app.php中配置的默认数据库连接中使用默认数据库创建一个名为"user_permissions"的表。

  • 在plugins/UserPermissions/config/routes.php中更改您插件GUI的路由,默认为domain.com/users-permissions

     Router::plugin(
         'UsersPermissions',
         ['path' => '/users-permissions'],
         function ($routes) {
             $routes->fallbacks('DashedRoute');
         }
     );
    
  • 如果用户没有特定操作的权限,请更新回调URL。要更新URL,请替换plugins/UsersPermissions/src/controller/component/ResourceComponent.php中的'dashboard'

     return  $this->_registry->getController()->redirect('/dashboard');
    
  • 更新composer,转到您的cakephp安装根目录并运行以下命令

     composer dumpautoload
    

这就完成了,恭喜您:)

如果您在用户认证和授权的Cakephp应用程序的用户表中具有'admin'角色,则可以访问GUI。

使用方法

  • 如果您想加载插件并为所有控制器和路由的所有操作加载权限,请将以下代码添加到cakephpapp/src/controller/AppController.php中

     public function initialize()
     {
         parent::initialize();
         // Some code
         // Load Resource Component
         $this->loadComponent('UsersPermissions.Resource');
     }
    
     public function beforeFilter(Event $event)
     {
     	parent::beforeFilter($event);
     	// Some code
     	// Load permissions check function from Resource component
         $this->Resource->checkPermision();
     }
    
    
  • 如果您只想为单个控制器加载插件和权限,请将以下代码添加到所需的控制器中(与上面相同)cakephpapp/src/controller/ExampleController.php

     public function initialize()
     {
         parent::initialize();
         // Some code
         // Load Resource Component
         $this->loadComponent('UsersPermissions.Resource');
     }
    
     public function beforeFilter(Event $event)
     {
     	parent::beforeFilter($event);
     	// Some code
     	// Load permissions check function from Resource component
         $this->Resource->checkPermision();
     }
    
    
  • 如果您只想为单个控制器中的一个操作加载插件和权限,请将以下代码添加到所需的控制器中,并在cakephpapp/src/controller/ExampleController.php中所需的操作/函数的开始处

     public function initialize()
     {
         parent::initialize();
         // Some code
         // Load Resource Component
         $this->loadComponent('UsersPermissions.Resource');
     }
    
     public function exampleAction($param = null)
     {
     	// Load permissions check function from Resource component
         $this->Resource->checkPermision();
    
     	// Some code
     	
     }
    
    

*该插件使用bootstrap作为前端样式,但您可以更新视图。为此,您可以更新以下文件。

plugins/UsersPermissions/src/template/Permissions/index.ctp
plugins/UsersPermissions/src/template/Permissions/userpermission.ctp

作者

Hassnain Abass开发 - 高级Web开发者和Freelancer

贡献

此存储库遵循CakePhp插件标准。如果您想向插件贡献新功能、增强功能或错误修复,请随时拉取或报告/打开问题。

许可证

版权所有 2017-2020 Hassnain Abass。保留所有权利。

MIT许可证下发布。包含在此存储库中的源代码的再分发必须保留每个文件中找到的版权声明。

祝您好运,编码愉快。