dynamic/silverstripe-manageable-dataobject

允许前端DataObject管理

安装次数: 2,892

依赖项: 1

建议者: 0

安全性: 0

星标: 2

关注者: 7

分支: 3

开放问题: 1

类型:silverstripe-vendormodule

2.0.0 2020-02-26 17:01 UTC

This package is auto-updated.

Last update: 2024-08-27 02:55:42 UTC


README

Build Status Scrutinizer Code Quality codecov

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

允许前端管理DataObjects。

需求

  • SilverStripe ^4.0
  • 可查看的Dataobject ^2.0
  • 附加表单字段 ^2.0

安装

composer require dynamic/silverstripe-manageable-dataobject

配置

MyPageController:
  managed_object: MyManageableObject
  extensions:
    - Dynamic\ManageableDataObject\Extensions\ManageableControllerExtension

MyManageableObject:
  extensions:
    - Dynamic\ViewableDataObject\Extensions\ViewableDataObject
    - Dynamic\ManageableDataObject\Extensions\ManageableObjectExtension
  listing_page_class: MyPage

MyManageableObject

要使用ManageableDataObject,您必须实现PermissionProviderManageableDataObjectInterface中定义的方法。下面的示例是PermissionProviderManageableDataObjectInterface方法的非常基础的实现。

<?php

namespace Foo\Bar;

use Dynamic\ManageableDataObject\Interfaces\ManageableDataObjectInterface;
use SilverStripe\Forms\FieldList;
use SilverStripe\Forms\RequiredFields;
use SilverStripe\ORM\DataObject;
use SilverStripe\Security\Permission;
use SilverStripe\Security\PermissionProvider;

class MyManageableObject extends DataObject implements PermissionProvider, ManageableDataObjectInterface
{

        /**
     * @return array
     */
    public function providePermissions()
    {
        return [
            'MDO_Create',
            'MDO_Edit',
            'MDO_Delete',
            'MDO_View',
        ];
    }

    /**
     * @param null $member
     * @param array $context
     *
     * @return bool|int
     */
    public function canCreate($member = null, $context = array())
    {
        return Permission::check('MDO_Create', 'any', $member);
    }

    /**
     * @param null $member
     *
     * @return bool|int
     */
    public function canEdit($member = null)
    {
        return Permission::check('MDO_Edit', 'any', $member);
    }

    /**
     * @param null $member
     *
     * @return bool|int
     */
    public function canDelete($member = null)
    {
        return Permission::check('MDO_Delete', 'any', $member);
    }

    /**
     * @param null $member
     *
     * @return bool|int
     */
    public function canView($member = null)
    {
        return Permission::check('MDO_View', 'any', $member);
    }

    /**
     * @param null $params
     *
     * @return FieldList
     */
    public function getFrontEndFields($params = null)
    {
        return parent::getFrontEndFields();
    }

    /**
     * @return FieldList
     */
    public function getFrontEndActions()
    {
        return FieldList::create();
    }

    /**
     * @return RequiredFields
     */
    public function getFrontEndRequiredFields()
    {
        return RequiredFields::create();
    }
}