sectheater / laravel-jarvis
与我一起实现你的抱负
Requires
- php: >=7.0.0
- sectheater/artify: @dev
Requires (Dev)
- laravel/framework: ~5.4.36|~5.5.0|~5.6.0
- phpunit/phpunit: ~5.7.14|~6.1|~7.0
README
由 SecTheater Foundation 制作,爱意满满: http://www.sectheater.org
包文档: http://www.sectheater.org/documentation
Jarvis 快速参考表即将推出
Jarvis 提供以下功能
1. 认证系统
登录、注册、密码重置提醒、安全问题和激活。
2. 评论系统 & 回复系统
3. 喜欢与不喜欢系统
您可以为评论、回复和帖子等任何内容进行喜欢或不喜欢。您还可以重置喜欢,这样用户的喜欢或不喜欢就会被移除。
4. 升级和降级用户
5. 审批任何内容
您只需提供要批准的模型和记录的ID即可批准任何内容。
6. 标签
将标签分配给应用程序中的任何内容
您可以在一个文本输入框中分配一个或多个标签,并可以动态设置分隔符。
7. 授权用户与管理角色。
安装步骤
1. 需求包
创建新的 Laravel 应用程序后,您可以使用以下命令包含 Jarvis 包:
composer require sectheater/laravel-jarvis:dev-master
2. 添加数据库凭证 & APP_URL
接下来,请确保创建一个新的数据库,并将数据库凭证添加到您的 .env 文件中。
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
您还希望在 .env 文件中的 APP_URL 变量内更新您的网站 URL。
APP_URL=https://:8000
3. 准备好您的环境。
只需运行以下命令。
php artisan sectheater:install
命令解释
1- 它通过注册您在调查中确认的内容来设置您的配置文件,如果使用 一切 选项,则将使用默认配置。如果您想要更改任何内容,请转到 config/jarvis.php 并设置所需的内容。2- 它将提供一个调查,以便包设置必须启用的功能。3- 它还设置认证路由。
4. 示例用法
4.1 注册用户
每次尝试注册用户时,只需向 Jarvis 提供数据以及要分配给此用户的角色slug即可。如果希望激活此用户,请传递第三个参数。
Jarvis::registerWithRole($data,'user',true)
4.2 登录用户
登录用户也是一个简单的事情,只需传递用户尝试使用的数据,可以是用户名/电子邮件和密码或任何内容。然后,如果想要记住用户,请将第二个参数传递为 true。
Jarvis::login($data,true) // jarvis()->login($data,true);
4.3 检查角色。
假设我想检查当前登录用户是否有创建帖子的权限。值得注意的是,每次您传递多个要检查的元素,并且用户具有其中任何一个时,该方法将返回布尔值。
Jarvis::User()->hasAnyRole(['create-post'])
我们在这里检查用户是否在用户/管理员权限下有创建权限。
Jarvis::User()->hasAnyRole(['create-tag','moderator.create-tag']) /* first permission determines what the role the user has and then check if he has this permission , second one checks if the user has moderator.create-tag and this should exist in users table permissions column, as this doesn't exist in default roles table ( unless you add it ) */
有时候,你可能想检查特定用户是否拥有所有角色,而不仅仅是其中任何一个。当然,这也是包含在内的。
Jarvis::User()->hasAllRole(['create-post','edit-post'])
如果你只想检查一个权限,你可以将这个权限作为一个数组传递给HasAnyRole,或者像以下这样做。
Jarvis::User()->hasRole('view-post')
如果你想要检查用户是否有任何帖子权限或其他权限,你可以这样做。
// you can use the helper also jarvis()->user()->hasRole('*-post');
更多详细信息请参阅文档。
最近添加的功能
最近更改
-
移除了Jarvis中间件。
-
根据数据库角色自动设置策略和门。
-
现有关系根据现有模型动态设置,通过属性或配置文件。
-
观察者动态监视已绑定到配置文件中的模型。
-
添加了package_version函数(检查传递给它的任何软件包的版本)
-
model_exists函数现在检查用户模型
-
jarvis_model_exists函数仅检查Jarvis的模型。
-
为所有存储库添加了recent方法(你可以使用它根据条件和/或批准的内容检索最新的东西)
-
更新了存储库接口
-
更新了基本存储库,现在你可以将标识符传递给删除和更新方法以查找或更新/删除的实例。
-
添加了make:facade命令
-
添加了make:response命令
-
添加了make:repository命令
-
添加了package_path函数
-
关系与相关模型动态同步。
-
更新了Roles特性。
添加了额外的命令,例如
- sectheater:register-authorization // 根据你的数据库角色注册策略和门并发布它们。
- make:observer
- sectheater:seed-db , 用RolesSeeder填充你的数据库并调用register-authorization(可选)
修复
- 修复了blade中的路由。
- 修复了Jarvis路由方法,已从web文件中移除,它将被添加到你的Route Service Provider中
- 如果sectheater:auth运行时不存在app.blade.php,则会复制它
- RegisterWithRole方法已修复。