-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathRegistrationBlockRolePermissionsController.php
More file actions
131 lines (124 loc) · 3.58 KB
/
RegistrationBlockRolePermissionsController.php
File metadata and controls
131 lines (124 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
/**
* RegistrationBlockRolePermissions Controller
*
* @author Noriko Arai <arai@nii.ac.jp>
* @author Allcreator <info@allcreator.net>
* @link http://www.netcommons.org NetCommons Project
* @license http://www.netcommons.org/license.txt NetCommons License
* @copyright Copyright 2014, NetCommons Project
*/
App::uses('RegistrationBlocksController', 'Registrations.Controller');
/**
* RegistrationBlockRolePermissions Controller
*
* @author Shohei Nakajima <nakajimashouhei@gmail.com>
* @package NetCommons\Registrations\Controller
*/
class RegistrationBlockRolePermissionsController extends RegistrationBlocksController {
/**
* layout
*
* @var array
*/
public $layout = 'NetCommons.setting';
/**
* use models
*
* @var array
*/
public $uses = array(
'Registrations.RegistrationSetting',
);
/**
* use components
*
* @var array
*/
public $components = array(
'NetCommons.Permission' => array(
//アクセスの権限
// HACK: RegistrationBlocksControllerを継承しているので
// 親クラスの "*" 権限指定が上書きされるように "*" 指定をしている。
'allow' => array(
'*' => 'block_permission_editable',
),
),
'Registrations.RegistrationBlockTabs',
);
/**
* use helpers
*
* @var array
*/
public $helpers = array(
'Blocks.BlockRolePermissionForm',
//'Blocks.BlockTabs' => array(
// 'mainTabs' => array(
// 'block_index' => array(
// 'url' => array('controller' => 'registration_blocks')
// ),
// ),
// 'blockTabs' => array(
// 'block_settings' => array(
// 'url' => array('controller' => 'registration_edit', 'action' =>
// 'edit_question', 'q_mode' => 'setting')
// ),
// 'role_permissions' => array(
// 'url' => array('controller' => 'registration_block_role_permissions')
// ),
// 'mail_settings' => array(
// 'url' => array('controller' => 'registration_mail_settings')
// ),
// 'answer_list' => array(
// 'url' => array('controller' => 'registration_blocks', 'action' =>
// 'answer_list'),
// 'label' => ['registrations', 'Answer List'],
// ),
//
// ),
//),
'NetCommons.Date',
);
/**
* edit
*
* @return void
*/
public function edit() {
// この処理に来る前に必ずSettingレコードは作成される(beforeFilterで
// (作成できてないときはExceptionエラーが発生して、ここにはこれない
$registrationSetting = $this->RegistrationSetting->getSetting();
$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->RegistrationSetting->saveRegistrationSetting($this->request->data)) {
$this->NetCommons->setFlashNotification(
__d('net_commons', 'Successfully saved.'),
array(
'class' => 'success',
)
);
$this->redirect(NetCommonsUrl::backToIndexUrl('default_setting_action'));
return;
}
$this->NetCommons->handleValidationError($this->RegistrationSetting->validationErrors);
$this->request->data['BlockRolePermission'] = Hash::merge(
$permissions['BlockRolePermissions'],
$this->request->data['BlockRolePermission']
);
return;
}
$this->request->data['RegistrationSetting'] = $registrationSetting['RegistrationSetting'];
$this->request->data['Block'] = $registrationSetting['Block'];
$this->request->data['BlockRolePermission'] = $permissions['BlockRolePermissions'];
$this->request->data['Frame'] = Current::read('Frame');
}
}