xlabs/mmadminbundle

通过浏览器扩展实现管理功能

此软件包的官方仓库似乎已消失,因此该软件包已被冻结。

安装: 926

依赖项: 15

建议者: 0

安全: 0

类型:symfony-bundle

2.0.20 2023-06-12 12:17 UTC

README

通过composer安装

php -d memory_limit=-1 composer.phar require xlabs/mmadminbundle

在你的AppKernel中

public function registerbundles()
{
    return [
    	...
    	...
    	new XLabs\MMAdminBundle\XLabsMMAdminBundle(),
    ];
}

要求

  • MongoDB -> 服务 'doctrine_mongodb.odm.default_document_manager'
  • Assetic -> 如果需要,请确保包含此扩展包
# app/config.yml

assetic:
    ...
    bundles: [ ..., 'XLabsMMAdminBundle']
    ...

路由

追加到主路由文件

# app/config/routing.yml

x_labs_mm_admin:
    resource: "@XLabsMMAdminBundle/Resources/config/routing.yml"
    prefix:   /

配置示例

以下显示默认值

# app/config/config.yml

x_labs_mm_admin:
    user_class: XLabs\CoreBundle\Entity\User
    keyword: 'mySecretWord' # the secret word to type in the frontend
    cookie_secret: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # to build user hash
    cookie_domains: ['domain1.com', 'domain2.com'] # optional; mmadmin cookies will also be created for these domains
    project: 'MyProject' # used as issuer for 2FA
    2FA:
        - { username: 'xmateos@domain.com', secret: 'XXXXXXXXXXXXXXXX', max_attempts: false, cookie_ttl: false, roles: ['ROLE_MMADMIN_MASTER']}
        - { username: 'xmateos5@domain.com', secret: 'XXXXXXXXXXXXXXXX', max_attempts: 5, retryAfterMinutes: 5, cookie_ttl: 6400}

请记住运行路由和Assetic命令

php bin/console fos:js-routing:dump && php bin/console assetic:dump && php bin/console assetic:dump --env=prod --no-debug

用法

安装并登录后,只需在前端页面上输入关键字。

您可以在自定义模板上添加自定义控件到面板

"::mm_admin_custom.html.twig"

如果您想从游览中访问面板,请确保nginx在nginx.conf中添加了正确的头信息

身份验证处理器:登录/注销

如果您设置了任何登录/注销处理器,请确保创建以下服务,并将您的当前处理器设置为它们的父服务

# YourBundle/Resources/config/services.yml
services:
    ...
    
    xlabs_mmadmin_login_handler:
        parent: <your_login_handler_service_id>
            
    xlabs_mmadmin_logout_handler:
        parent: <your_logout_handler_service_id>

同时确保在处理器中包含跳过验证码的方法,如果登录页面已设置

...
if($captcha_verified || $container->get('xlabs_mm_admin')->isMMAdmin() || ...)
{
    ...

保护路由/控制器/动作

如果您想保护控制器,请添加以下注解

# YourBundle/Controller/YourController.php
<?php

namespace YourBundle\Controller;
...
use XLabs\MMAdminBundle\Annotations as XLabsMMAdmin;

/**
 * @XLabsMMAdmin\isProtected
 */
class YourController extends Controller
{
    ...
    

如果您想保护控制器动作,请添加以下注解

# YourBundle/Controller/YourController.php
<?php

namespace YourBundle\Controller;
...
use XLabs\MMAdminBundle\Annotations as XLabsMMAdmin;

class AffiliatesController extends Controller
{
    /**
     * @XLabsMMAdmin\isProtected
     */
    public function yourControllerAction(...)
    {
        ...
    }
    ...    

您还可以通过设置以下选项在其定义中保护路由或一组路由

# YourBundle/Resources/config/routing.yml
services:
    ...
    your_routing_id:
        ...
        options:
            isProtected: true

此外,您可以为isProtected注解指定特定的扩展包角色(以逗号分隔的值)(仅在控制器类和动作中)

    ...
    /**
     * @XLabsMMAdmin\isProtected("ROLE_RANDOM, ROLE_WHATEVER")
     */
    ...    

角色 'ROLE_MMADMIN_MASTER' 将始终被允许。

故障排除

如果您在GA生成的代码不起作用,可能是服务器中的时间问题。

sudo /usr/bin/rdate -s time-a.nist.gov