public function copy($id, $data = array())
{
if ($id) {
$data = $this->find('first', array('conditions' => array('Permission.id' => $id), 'recursive' => -1));
}
if (!isset($data['Permission']['user_group_id']) || !isset($data['Permission']['name'])) {
return false;
}
if ($this->find('count', array('conditions' => array('Permission.user_group_id' => $data['Permission']['user_group_id'], 'Permission.name' => $data['Permission']['name'])))) {
$data['Permission']['name'] .= '_copy';
return $this->copy(null, $data);
// 再帰処理
}
unset($data['Permission']['id']);
unset($data['Permission']['modified']);
unset($data['Permission']['created']);
$data['Permission']['no'] = $this->getMax('no', array('user_group_id' => $data['Permission']['user_group_id'])) + 1;
$data['Permission']['sort'] = $this->getMax('sort', array('user_group_id' => $data['Permission']['user_group_id'])) + 1;
$this->create($data);
$result = $this->save();
if ($result) {
$result['Permission']['id'] = $this->getInsertID();
return $result;
} else {
return false;
}
}