Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    [RESOLVIDO] Adicionar novos privilégios do sistema.

    Scheduled Pinned Locked Moved Portuguese
    14 Posts 2 Posters 4.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • marcellocM
      marcelloc
      last edited by

      dmenezes,

      O local para inclusões de permissões é no diretorio /etc/inc/priv, não precisa incluir nada de diferente no arquivo vpn_openvpn_export.php

      segue exemplo do arquivo de permissões
      /etc/inc/priv/postfix.priv.inc

      
      global $priv_list;
      
      $priv_list['page-diagnostics-search-email'] = array();
      $priv_list['page-diagnostics-search-email']['name'] = "WebCfg - Diagnostics: Postfix search email";
      $priv_list['page-diagnostics-search-email']['descr'] = "Allow access to postfix search page.";
      $priv_list['page-diagnostics-search-email']['match'] = array();
      $priv_list['page-diagnostics-search-email']['match'][] = "postfix_search.php*";
      
      $priv_list['page-status-postfix-queue'] = array();
      $priv_list['page-status-postfix-queue']['name'] = "WebCfg - Status: Postfix queue";
      $priv_list['page-status-postfix-queue']['descr'] = "Allow access to postfix queue page.";
      $priv_list['page-status-postfix-queue']['match'] = array();
      $priv_list['page-status-postfix-queue']['match'][] = "postfix_queue.php*";
      
      $priv_list['page-services-postfix-forwarder'] = array();
      $priv_list['page-services-postfix-forwarder']['name'] = "WebCfg - Services: All xml pages (config).";
      $priv_list['page-services-postfix-forwarder']['descr'] = "Allow access to any xml package page.";
      $priv_list['page-services-postfix-forwarder']['match'] = array();
      $priv_list['page-services-postfix-forwarder']['match'][] = "pkg_edit.php*";
      $priv_list['page-services-postfix-forwarder']['match'][] = "postfix*.php*";
      ?>
      

      Treinamentos de Elite: http://sys-squad.com

      Help a community developer! ;D

      1 Reply Last reply Reply Quote 0
      • D
        dmenezes
        last edited by

        Obrigado dude!

        1 Reply Last reply Reply Quote 0
        • D
          dmenezes
          last edited by

          o correto seria o pacote instalado ja vim com o arquivo .inc e jogar em /usr/local/pkg/priv

          :)

          1 Reply Last reply Reply Quote 0
          • marcellocM
            marcelloc
            last edited by

            Sim. O openvpn não é nativo?
            Se for parte de algum pacote adicional, posta o arquivo que eu publico.

            Treinamentos de Elite: http://sys-squad.com

            Help a community developer! ;D

            1 Reply Last reply Reply Quote 0
            • D
              dmenezes
              last edited by

              OpenVPN sim.

              O pacote e o OpenVPN: Client Export Utility

              E tem outro problema, na WebGUI este pacote fica dentro de OpenVPN

              VPN
              OpenVPN (vpn_openvpn_server.php)

              ou seja para se ter acesso ao OpenVPN: Client Export Utility (vpn_openvpn_export.php)

              vc precisa ter permissao para vpn_openvpn_server.php

              no futuro a opcao OpenVPN deve ser mudada, pois dessa maneira nao e inteligente. (eu nao preciso dar acesso as configuracoes do servidor vpn, apenas para importar os usuarios)

              no meu caso adicionei a opcao Client Export em VPN.

              em fbegin.inc
              $vpn_menu[] = array("Client Export", "/vpn_openvpn_export.php");

              para ser ter um menu direto ao Client Export.

              e criei o openvpnexport.inc

              global $priv_list;

              $priv_list['page-openvpn-client-export'] = array();
              $priv_list['page-openvpn-client-export']['name'] = "WebCfg - OpenVPN: Client Export Utility";
              $priv_list['page-openvpn-client-export']['descr'] = "Allow access to the OpenVPN: Client Export Utility page.";
              $priv_list['page-openvpn-client-export']['match'] = array();
              $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export.php*";

              ?>

              1 Reply Last reply Reply Quote 0
              • marcellocM
                marcelloc
                last edited by

                dmenezes,

                Vou testar as atualizações e publicar a correção.

                Obrigado pela contribuição.

                Treinamentos de Elite: http://sys-squad.com

                Help a community developer! ;D

                1 Reply Last reply Reply Quote 0
                • marcellocM
                  marcelloc
                  last edited by

                  Acabei de publicar a versão 0.9.7 com o arquivo de permissões e o menu na aba vpn.

                  EDIT

                  Tive que retirar a opção do menu, o pacote é suportado pelo core team e eles não gostaram muito da idéia.

                  testei aqui com sucesso a permissão sem a opção de menu. Quando um usuario só tem permissão para o openvpn-client-export, ele cai direto na tela.
                  Quando a permissão inclui o dashboard, o usuario cai na tela do client export quando acessa o menu openvpn.

                  Treinamentos de Elite: http://sys-squad.com

                  Help a community developer! ;D

                  1 Reply Last reply Reply Quote 0
                  • D
                    dmenezes
                    last edited by

                    Legal!

                    Eu tb vejo que nao ha necessidade de criar um outro menu, caso indo na opcao OpenVPN vc tenha acesso ao client export, coisa que nao esta acontecendo!
                    apenas criei para facilitar o meu lado com o cliente. :)

                    Mas nao obtive sucesso da forma que vc falou… Quando tenho o usuario com a permissao para acessar apenas o Client Export (vpn_openvpn_export.php) (Na opcao OpenVPN)
                    e quando vou em OpenVPN esta o link vpn_openvpn_server.php assim indo para o dashboard.

                    uma outra solucao para o meu problema seria apenas alterar
                    $vpn_menu[] = array("OpenVPN", "/vpn_openvpn_server.php");

                    para

                    $vpn_menu[] = array("OpenVPN", "/vpn_openvpn_export.php");

                    sendo assim o menu OpenVPN cairia direto no link do Client Export
                    mas repito solucao para o meu caso... arranjo... e nao para ser modificado dessa forma no projeto...

                    .....

                    outra coisa...
                    acredito que pela organizacao do sistema... os arquivo de privilegios  de pacotes devem ser jogados em /usr/local/pkg/priv
                    [2.0-RELEASE][root@pfSense.localdomain]/etc/inc(39): grep -rn '/usr/local/pkg/priv' .
                    ./priv.inc:76:if(is_dir("/usr/local/pkg/priv")) {
                    ./priv.inc:77:  $dir_array = get_priv_files("/usr/local/pkg/priv");
                    ./priv.inc:79:          if (!is_dir("/usr/local/pkg/priv/{$file}") && stristr($file,".inc"))
                    ./priv.inc:80:                  include("/usr/local/pkg/priv/{$file}");

                    ….

                    e no arquivo adicionar a linha em negrito que tb faz parte do utilitario openvpnexport.inc

                    global $priv_list;

                    $priv_list['page-openvpn-client-export'] = array();
                    $priv_list['page-openvpn-client-export']['name'] = "WebCfg - OpenVPN: Client Export Utility";
                    $priv_list['page-openvpn-client-export']['descr'] = "Allow access to the OpenVPN: Client Export Utility page.";
                    $priv_list['page-openvpn-client-export']['match'] = array();
                    $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export.php*";
                    $priv_list['page-openvpn-client-export']['match'][] = "vpn_openvpn_export_shared.php";*

                    ?>

                    excelente trabalho o seu :)

                    1 Reply Last reply Reply Quote 0
                    • marcellocM
                      marcelloc
                      last edited by

                      Vou sugerir a alteração ao core team, eles nao gostaram muito da alteração de um pacote 'deles' sem antes discutir sobre o assunto.

                      Com relação a permissão, meu teste foi da seguinte forma:

                      • cria o Usuario

                      • cria um grupo

                      • inclui o Usuario no grupo

                      • inclui a permissão do openvpn somente ou também inclui o 'dashboard all'

                      Aqui funcionou, veja se você consegue o mesmo resultado.

                      Treinamentos de Elite: http://sys-squad.com

                      Help a community developer! ;D

                      1 Reply Last reply Reply Quote 0
                      • D
                        dmenezes
                        last edited by

                        @marcelloc

                        tenta apenas com essas permissoes

                        WebCfg - Dashboard (all) Allow access to all pages required for the dashboard.
                        WebCfg - OpenVPN: Client Export Utility

                        e ver se funciona…

                        comigo nao funcionou!

                        1 Reply Last reply Reply Quote 0
                        • marcellocM
                          marcelloc
                          last edited by

                          foi exatamente como testei.

                          a única diferença é que apliquei as permissões em um grupo.

                          Treinamentos de Elite: http://sys-squad.com

                          Help a community developer! ;D

                          1 Reply Last reply Reply Quote 0
                          • D
                            dmenezes
                            last edited by

                            putz! agora estou grilado com isso! hehe nao funciona!
                            ja limpei ate cache hahaha

                            o seu teste foi com apenas essas 2 opcoes nada mais? :o

                            1 Reply Last reply Reply Quote 0
                            • marcellocM
                              marcelloc
                              last edited by

                              o seu teste foi com apenas essas 2 opcoes nada mais?

                              Sim. Vou fazer denovo mais tarde e posto o resultado.

                              Treinamentos de Elite: http://sys-squad.com

                              Help a community developer! ;D

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.