* @author Yuto Kitatsuji * @link http://www.netcommons.org NetCommons Project * @license http://www.netcommons.org/license.txt NetCommons License * @copyright Copyright 2014, NetCommons Project */ App::uses('TasksAppController', 'Tasks.Controller'); /** * TaskBlockRolePermissions Controller * * @author Yuto Kitatsuji * @package NetCommons\Tasks\Controller */ class TaskBlockRolePermissionsController extends TasksAppController { /** * layout * * @var array */ public $layout = 'NetCommons.setting'; /** * use models * * @var array */ public $uses = array( 'Tasks.Task', ); /** * use components * * @var array */ public $components = array( 'NetCommons.Permission' => array( //アクセスの権限 'allow' => array( 'edit' => 'block_permission_editable', ), ), ); /** * use helpers * * @var array */ public $helpers = array( 'Blocks.BlockRolePermissionForm', 'Blocks.BlockTabs' => array( 'mainTabs' => array( 'block_index' => array('url' => array('controller' => 'task_blocks')), ), 'blockTabs' => array( 'block_settings' => array('url' => array('controller' => 'task_blocks')), 'mail_settings', 'role_permissions' => array('url' => array('controller' => 'task_block_role_permissions')), ), ), ); /** * edit * * @return void */ public function edit() { if (! $task = $this->Task->getTask()) { return $this->throwBadRequest(); } $permissions = $this->Workflow->getBlockRolePermissions( array( 'content_creatable', 'content_publishable', 'content_comment_creatable', 'content_comment_publishable' ) ); $this->set('roles', $permissions['Roles']); if ($this->request->is('post')) { if ($this->TaskSetting->saveTaskSetting($this->request->data)) { return $this->redirect(NetCommonsUrl::backToIndexUrl('default_setting_action')); } $this->NetCommons->handleValidationError($this->TaskSetting->validationErrors); $this->request->data['BlockRolePermission'] = Hash::merge( $permissions['BlockRolePermissions'], $this->request->data['BlockRolePermission'] ); } else { $this->request->data['TaskSetting'] = $task['TaskSetting']; $this->request->data['Block'] = $task['Block']; $this->request->data['BlockRolePermission'] = $permissions['BlockRolePermissions']; $this->request->data['Frame'] = Current::read('Frame'); } } }