public function _addPermission($data)
{
if (ClassRegistry::isKeySet('Permission')) {
$Permission = ClassRegistry::getObject('Permission');
} else {
$Permission = ClassRegistry::init('Permission');
}
$userGroups = $Permission->UserGroup->find('all', array('conditions' => array('UserGroup.id <>' => Configure::read('BcApp.adminGroupId')), 'recursive' => -1));
if ($userGroups) {
foreach ($userGroups as $userGroup) {
//$permissionAuthPrefix = $Permission->UserGroup->getAuthPrefix($userGroup['UserGroup']['id']);
// TODO 現在 admin 固定、今後、mypage 等にも対応する
$permissionAuthPrefix = 'admin';
$url = '/' . $permissionAuthPrefix . '/' . Inflector::underscore($data['Plugin']['name']) . '/*';
$permission = $Permission->find('first', array('conditions' => array('Permission.url' => $url), 'recursive' => -1));
switch ($data['Plugin']['permission']) {
case 1:
if (!$permission) {
$Permission->create(array('name' => $data['Plugin']['title'] . '管理', 'user_group_id' => $userGroup['UserGroup']['id'], 'auth' => true, 'status' => true, 'url' => $url, 'no' => $Permission->getMax('no', array('user_group_id' => $userGroup['UserGroup']['id'])) + 1, 'sort' => $Permission->getMax('sort', array('user_group_id' => $userGroup['UserGroup']['id'])) + 1));
$Permission->save();
}
break;
case 2:
if ($permission) {
$Permission->delete($permission['Permission']['id']);
}
break;
}
}
}
}