jcergolj/laravellte

Laravel 框架。

安装: 2

依赖: 0

建议者: 0

安全: 0

星级: 216

关注者: 11

分支: 39

公开问题: 17

语言:CSS

类型:项目


README

简介

这是一个基于 Laravel 8.0 的 AdminLTE 3.0 主题、Alpinejs 2.0、Livewire 2.0 的 AdminLTE 3.0 主题的模板,支持测试和可选功能分支。

您可以查看我正在积极工作的这个仓库 Laravel Castra。同样的想法,不同的工具(Hotwire Turbo)。

内容

完全控制代码

有时候,软件包太大或太繁琐,难以使用。有时,软件包没有你需要的临界功能,你必须进行一些修补才能解决这个问题。

你所缺少的是对代码的控制,现在你拥有了!不喜欢添加新用户的方式。没问题。你可以随意修改代码。不再需要分支软件包并篡改它们的代码。 想法是创建标准功能的分支,使其他人可以将它们合并到他们的主分支中。

摘要

  • Laravel 8.0, Alpinejs, Livewire 2.0, AdminLTE 主题 3.0 ✔️
  • 登录 ✔️
  • 忘记密码 ✔️
  • 用户 CRUD ✔️
  • 为新用户提供带有设置新密码链接的欢迎邮件 ✔️
  • 角色 CRUD(基本认证系统)✔️
  • 可以将基于路由的权限分配给角色✔️
  • 带有更改密码、电子邮件和用户图像选项的个人资料✔️
  • 为新用户确认电子邮件以确认其电子邮件地址✔️
  • 文件生成✔️
  • 包含 CI(GitHub Actions)✔️
  • 包含超过 200 个测试✔️

功能分支

以下是支持的功能分支列表。通过将它们合并到主分支中,您可以解锁新功能。

  1. 用户注册
  2. 简单的基于角色的授权

安装

在安装 Laravel 之后,您应该运行以下命令

git clone https://github.com/jcergolj/laravellte.git
composer install
cp .env.example .env
php artisan key:generate
npm install
npm run dev
composer cghooks update
php artisan migrate:fresh --seed

关爱代码

让我们面对现实。有时候我们很粗心,没有好好照顾代码。我添加了一些有用的软件包(这不是很讽刺吗)来尽可能减轻开发者的负担。

"php artisan insights --no-interaction --min-quality=90 --min-complexity=85 --min-architecture=90 --min-style=95"

文件生成

对于 CRUD 操作,您可能需要考虑使用内置的文件生成命令。它生成用于索引、创建、显示、编辑和删除操作的文件,如下所示

php artisan make:ltd-component bla --index --create --show --edit --delete

您可以选择省略任何选项。如果您愿意,可以像您喜欢的那样更新 stubs 文件。模板文件中有注释,用作您修改代码的提醒。您可以通过输入以下内容找到它们:index-reviewcreate-reviewshow-reviewedit-reviewdelete-review。Factory 和 Model 模板不包括在这个命令中。

授权

Laravellte 使用基于角色-权限的授权系统。只有具有管理员角色的用户才能添加新角色并将其分配权限。

关于权限

对于新资源,权限通过 PermissionsTableSeeder 添加。按照惯例,主要权限类型是 indexcreateeditshowdelete,资源名称使用复数前缀。例如:users.index。话虽如此,您可以添加自己的权限。但是,您必须检查/修改代码。
根据惯例,路由名称必须是以下类型之一:indexcreateeditshowdelete示例
对于 Livewire 组件,命名约定如下:您必须使用以下类型之一,后跟资源名称,然后是 Component。例如:IndexUserComponent。所有 Livewire 组件都必须使用 HasLivewireAuth 特性。这里是 实现

索引页面的所有者限制

当向角色添加权限时,有一个额外的字段称为 owner_restricted。如果索引页面的 owner_restricted 字段为 true,则具有该权限的用户只能看到自己的资源。然而,为了使此功能正常工作,资源必须具有 owner_id 字段 并在 boot 方法 中附加 VisibleTo 全局。

显示、编辑、删除操作的所有者限制

如果 owner_restricted 字段对 showeditdelete 类型为 true,则用户只能修改他拥有的资源。

创建的所有者限制

对于创建类型,忽略 owner_restricted

对于路由网关

其核心是处理授权的 ForRouteGate,值得称赞的是 Authorisation Middleware

授权食谱

  1. 将权限应用于角色。
  2. 确保将 Authorisation 中间件应用于资源的路由 示例
  3. 确保路由和权限命名 resources.index(根据约定)示例
  4. 确保将 VisibleTo 全局范围应用于模型 示例
  5. 确保将 HasLivewireAuth 特性应用于所有 Livewire 组件 示例

警告

对于管理员角色权限限制不适用。

许可

MIT 许可证 下许可

贡献者