adrexia
1/24/2018 - 9:15 PM

Custom Permisssions

<?php

class MyDataObject extends DataObject implements PermissionProvider {

    public function canView($member = NULL, $context = []) {
        return Permission::check('MYOBJECT_VIEW');
    }
    public function canEdit($member = NULL, $context = []) {
        return Permission::check('MYOBJECT_EDIT');
    }
    public function canDelete($member = NULL, $context = []) {
        return Permission::check('MYOBJECT_DELETE');
    }
    public function canCreate($member = NULL, $context = []) {
        return Permission::check('MYOBJECT_CREATE');
    }
    /**
     * Get an array of {@link Permission} definitions that this object supports
     *
     * @return array
     */
    public function providePermissions() {
        return array(
            'MYOBJECT_VIEW' => array(
                'name' => 'View My Object',
                'category' => 'Module',
            ),
            'MYOBJECT_EDIT' => array(
                'name' => 'Edit My Object',
                'category' => 'Module',
            ),
            'MYOBJECT_DELETE' => array(
                'name' => 'Delete My Object',
                'category' => 'Module',
            ),
            'MYOBJECT_CREATE' => array(
                'name' => 'Create My Object',
                'category' => 'Module'
            )
        );
    }

}