概述
说明
urpm 是一套基于Laravel封装的后台用户管理权限系统,能够让开发者不用再关心权限问题,实现后台功能的快速开发。
U(User)用户管理;
R(Role)角色管理;
P(Permission)权限管理;
M(Menu)菜单管理。
框架Demo地址:Demo
Demo账号:admin 密码:123456
特点:
用户管理:
用户可以配置权限
角色管理
角色可以配置用户
角色可以配置权限
权限管理:
不需要在代码上进行权限控制;
在权限管理里可以控制controller类的访问;
权限控制可以控制get/post请求,也可以控制某个方法请求;
权限控制的控制也可以上边两种请求的多种结合,可精确某个一请求的控制。
菜单管理:
菜单可以对应url前缀、controller类;
可以控制哪些角色可以看到;
菜单的位置可以直接通过拖拽排序。
导航
安装要求
Laravel 5.3+
php 5.6.4
composer
获取代码
git clone https://gitee.com/landsss/lab.git
安装依赖
//在项目代码根目录执行
composer install
生成APP_KEY
//在项目代码根目录执行,如果已经有的就不需要生成了
php artisan key:generate
php artisan config:clear
修改 .env 配置
//修改数据库配置,以DB_开头的配置
//修改APP_URL
数据库迁移
//在项目代码根目录执行
//增加表
php artisan migrate
//增加默认数据
composer dump-autoload
php artisan db:seed
访问首页
访问APP_URL
比如我的首页:http://108.61.186.199:8088/
登录用户:admin
登录密码:123456
插件
表单提交
说明:
根据laravel路由restful规则,数据更新Cotroller有两个方法,分别是store,update;store是新数据存储,update是数据修改;在请求参数里的_method=POST对应Controller的store方法,PUT对应Controller的update方法。
提交方式:
表单以.post方式提交,默认增加参数_method=POST,如果提交的表单有id参数,且id值>0,_method=PUT。
参数说明:
class : _submit_,有此class,则使用表单提交插件
data-form-id :必填,指定要提交的form ID
data-url:选填,以post提交form的URL,如果不填,使用form的action,url遵循store方法的restful规则,如果是数据修改,自动会在url上加上id参数,不需要自己增加;
data-refresh-url:选填,提交成功后跳转的url,如果不填,则当前页面刷新
插件使用:
//提交#form /menu/1的请求,且_method=PUT,提交成功后跳转到/
提交
列表删除
说明:
根据laravel路由restful规则,数据删除使用的是Controller里的destroy方法,请求参数里有_method=DELETE则会使用到Controller的destroy方法。
参数说明:
class : _delete_,有此class,则使用列表数据删除插件
data-url:必填,以post提交此URL,url规则遵循restful
插件使用:
//提交/menu/1请求,且_method=DELETE,提交成功后刷新当前页
删除
代码修改
以下是项目对配置文件做的修改,不用在代码修改,仅供大家参考
修改 .env 配置
//修改数据库配置,以DB_开头的配置
//修改APP_URL
//增加以下配置
//SQL语句是否打印,不需要的话,可以改成false
DB_LOG=true
//权限配置不能编辑的ID
//用户不能删除的ID
DB_USER_CANNOT_MANAGE_IDS=1
//角色不能删除的ID
DB_ROLE_CANNOT_MANAGE_IDS=1
//权限不能删除的ID
DB_PERMISSION_CANNOT_MANAGE_IDS=1,2,3,4,5,6,7,8,9,10
//菜单不能删除的ID
DB_MENU_CANNOT_MANAGE_IDS=1,2,3,4,5,6,7,8
修改 app/Http/Kernel.php 注册 middleware
$routeMiddleware => [
'permission' => AppHttpMiddlewareAdminPermission::class,
]
修改 config/app.php 注册 aliases
'aliases' => [
'Admin' => AppFacedesAdminFacedes::class,
]
修改 routes/web.php 注册 route
//auth
Route::group(['prefix' => '/auth', 'namespace' => "Auth", 'middleware' => ['csrf']], function () {
Route::get('login', 'LoginController@showLoginForm')->name('login');
Route::post('login', 'LoginController@login');
Route::get('logout', 'LoginController@logout')->name('logout');
Route::post('logout', 'LoginController@logout')->name('logout');
});
//
Route::group(['prefix' => '/', 'middleware' => ['auth', 'permission']], function () {
Route::resource('/menu/tree', 'MenuController@tree');
Route::resource('/menu', 'MenuController');
Route::get('/role/{id}/permission', 'RoleController@permissionEdit');
Route::post('/role/{id}/permission', 'RoleController@permissionStore');
Route::resource('/role', 'RoleController');
Route::resource('/user', 'UserController');
Route::resource('/permission', 'PermissionController');
Route::resource('/info', 'InfoController');
Route::resource('/log', 'LogController');
Route::resource('/loginLog', 'LoginLogController');
Route::resource('/', 'HomeController');
});
修改 app/Providers/EventServiceProvider.php 注册 listen
//如果DB_LOG=true,要把这个listen加上,当然,如果不需要打印SQL日志,不需要加上这个配置
protected $listen = [
'IlluminateDatabaseEventsQueryExecuted' => [
'AppListenersDatabaseEventListener'
]
];
nginx参考
server {
listen 8088;
server_name demo.jachohx.com;
location / {
index index.php index.html;
root /var/www/urpm/public/;
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
root /var/www/urpm/public/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
include /etc/nginx/fastcgi.conf;
}
location ~* .(css|js|jpg|woff|woff2|png)$ {
root /var/www/urpm/resources/assets/;
break;
}
}
感谢
更新日志
初始化版本
如果你喜欢这个开源项目,记得在右上角点个 star 哦,谢谢:)
最后
以上就是沉默镜子为你收集整理的lumen 项目根目录_laravel 权限管理系统的全部内容,希望文章能够帮你解决lumen 项目根目录_laravel 权限管理系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复