Example #1
0
 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());
     }
 }