public function editar($id, $dados, $CDA) { $this->id = $id; if ($this->save($dados)) { if (isset($dados['permissoes']) && is_array($dados['permissoes'])) { $Permissao = new Permissao(); $Regra = new Regra(); // DELETANDO AS REGRAS, PARA QUE POSSAM SER INSERIDAS NOVAMENTE $this->query("DELETE FROM regras WHERE permissao_id IN (SELECT id FROM permissoes WHERE perfil_id = {$id})"); // DELETANDO AS PERMISSÕES, PARA QUE POSSAM SER INSERIDAS NOVAMENTE $this->query("DELETE FROM permissoes WHERE perfil_id = {$id}"); foreach ($dados['permissoes'] as $chave => $flag) { foreach ($flag as $acao) { $perfilPermissoes = $CDA->getRestricoesPorChave($chave . "." . $acao); if (count($perfilPermissoes) > 0) { $Permissao->create(array('perfil_id' => $this->id, 'descricao' => $chave . "." . $acao)); $respPermissao = $Permissao->save(); if (!$respPermissao) { throw new Exception("Erro ao salvar permissão"); } foreach ($perfilPermissoes as $permissao) { $Regra->create(array('permissao_id' => $respPermissao['Permissao']['id'], 'descricao' => $permissao)); if (!$Regra->save()) { throw new Exception("Erro ao salvar regra"); } } } } } return true; } throw new Exception("Nenhum dado de permissão foi enviado"); } return false; }
public function incluir() { $this->descricao = $_POST['descricao']; $this->empresa = new Empresa(EMPRESA); $this->save(); foreach ($_REQUEST['menus'] as $key => $valor) { $oAc = new Permissao(); $m = new Menu(); $m->id = $valor; $oAc->menu = $m; $oAc->perfil = $this; $oAc->save(); } $_SESSION['zurc.mensagem'] = 16; }
public function salvaPermissoes($permissoes) { $arrayP = explode(",", $permissoes); foreach ($arrayP as $key => $value) { $p = new Permissao(); $p->usuario = $this; $p->academia = new Academia($value); $p->save(); } }