mcms/package-admin

管理界面

安装: 93

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 0

开放问题: 0

语言:JavaScript

v0.1.1 2022-04-17 07:10 UTC

README

这是Mcms的管理包。它是基于Angular material构建的,但你可以使用任何你喜欢的框架。

安装

通过Composer

$ composer require mcms/package-admin

使用方法

将此服务提供者添加到config/app.php Mcms\Admin\AdminServiceProvider::class, 并添加此别名以便于使用 'ModuleRegistry' => Mcms\Admin\Facades\ModuleRegistryFacade::class,

你可以这样注册一个新的管理模块

ModuleRegistry::registerModule('{package-name}/admin.package.json');
print_r(ModuleRegistry::get());

然后你应该按照如下方式发布你的admin.package.json

    $this->publishes([
        __DIR__ . '/../config/admin.package.json' => storage_path('app/package-pages/admin.package.json'),
    ], 'admin-package');

以下是一个admin.package.json的示例

{
  "name" : "My package name",
  "package" : "package-name",
  "modules" : [
    "my.angular.module.name"
  ],
  "files" : {
    "js" : [
      "package-name/js/script-compiled.js"
    ],
    "css" : [
    ]
  }
}

最后,确保你将所有文件发布到public目录下的正确文件夹中。

使用以下方式获取处理后的注册信息

$files = ModuleRegistry::processRegistry();

Angular ACL

<div ng-if="ACL.can('create.users')">Can create users</div>
<div ng-if="ACL.level(2)">Is of level 2 and above</div>
<div ng-if="ACL.role('admin')">Is admin or above</div>

角色方法可以接受多个角色,如

<div ng-if="ACL.role('admin|su|moderator')">Is admin</div>

角色支持继承,所以如果你是一个级别为4的超级用户,而基本要求是级别为3的管理员,由于超级用户继承自管理员,因此你可以直接使用超级用户权限

如果超级用户和管理员处于同一级别,则继承不再适用。使用多角色表示法来表示你希望相似级别的用户通过检查(调解员-发布者或用户-作者)

  • 需要将angular模板移动到正确的public目录中(在开发中使用gulp)
  • 需要告诉angular模板public目录的位置

扩展Angular模块

我们需要使用ModuleExtender服务。按照如下方式向注册表中添加一个新模块

    ModuleExtender.register('pages', ModuleExtender.newPackage({
        id : 'extendedModule',
        label : 'Extended Module',
        order : 99,
        file : Config.templatesDir + 'temp.html'
    }));

第一个参数应该是模块名称,第二个是扩展。通常,我们应该在该文件中有一个组件,但由于你继承了模板注入,你可以使用一些小的东西。

然后在你自己的模块中,通过将其添加到你的标签或其他渲染方法中,你可以获得扩展后的功能

vm.tabs = ModuleExtender.extend('pages', vm.tabs);

第一个参数是模块名称,第二个是你的现有标签,这些标签将被附加并重新排序。