public function inserirPerfil() { try { $id = trim($_POST['id']); $titulo = trim($_POST['titulo']); $ativo = !empty($_POST['ativo']); $permissoesVisualizar = !empty($_POST['visualizar']) ? array_keys($_POST['visualizar']) : array(); $permissoesGravar = !empty($_POST['gravar']) ? array_keys($_POST['gravar']) : array(); $permissoesExcluir = !empty($_POST['excluir']) ? array_keys($_POST['excluir']) : array(); $perfil = new Perfil(); $perfil->id = $id; if (!empty($perfil->id)) { $perfil = $this->fachada->buscarPerfil($perfil); $perfil->permissoes->clear(); } $perfil->titulo = $titulo; $perfil->ativo = $ativo; $menusSelecionados = array_unique(array_merge($permissoesVisualizar, $permissoesGravar, $permissoesExcluir)); foreach ($menusSelecionados as $idmenu) { $menu = new Menu(); $menu->id = $idmenu; $menu = $this->fachada->buscarMenu($menu); $permissao = new Permissao(); $permissao->menu = $menu; $permissao->perfil = $perfil; $permissao->visualizar = in_array($menu->id, $permissoesVisualizar); $permissao->gravar = in_array($menu->id, $permissoesGravar); $permissao->remover = in_array($menu->id, $permissoesExcluir); $perfil->permissoes->add($permissao); } if (empty($perfil->id)) { $this->fachada->inserirPerfil($perfil); } else { $this->fachada->atualizarPerfil($perfil); } echo new JSONResponse(true, self::MSG_OPERACAO_SUCESSO); } catch (\Exception $ex) { echo new JSONResponse(false, $ex->getMessage()); } }