Permission::copy PHP Method

copy() public method

アクセス制限データをコピーする
public copy ( integer $id, array $data = [] ) : mixed
$id integer
$data array
return mixed UserGroup Or false
    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;
        }
    }