Ir para conteúdo

Featured Replies

Postado

Olá, boa noite amigos.

Poderiam me auxiliar com um ajuste ?

 

Seria possível restringir o acesso da base de conhecimentos, apenas para clientes logados ?

 

Fiz este procedimento https://www.whmcs.blog.br/personalizacao/restringindo-acesso-base-de-conhecimento/
porem, acredito estar incompatível pois não funcionou  =/

 

Se tiver alguma Hook para isso seria excelente


Postado

Isso só será viável via hook, fazendo identificação de usuário logado, para caso não esteja fazer um redirecionamento para o principal do whmcs.

Chamou? Estamos ai!


Postado
10 horas atrás, suportgc disse:

Olá, boa noite amigos.

Poderiam me auxiliar com um ajuste ?

 

Seria possível restringir o acesso da base de conhecimentos, apenas para clientes logados ?

 

Fiz este procedimento https://www.whmcs.blog.br/personalizacao/restringindo-acesso-base-de-conhecimento/
porem, acredito estar incompatível pois não funcionou  =/

 

Se tiver alguma Hook para isso seria excelente

Acredito que você não fez corretamente pois mesmo sendo um post de 2014 funciona normalmente, veja exemplo:

Visitante http://prntscr.com/h1tc8f

Cliente logado http://prntscr.com/h1td7a


Postado

Segue o hooks que faz isso para qualquer pagina que desejar.

Na linha

if (!in_array($vars['filename'], array(

você pode inserir as páginas que serão liberadas para acesso sem login.

 <?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForceEveryoneToLogin($vars) {

    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (!in_array($vars['filename'], array("login","dologin","clientarea","pwreset","index","register","cart","submitticket","viewticket")) && $clientID===0){
            header("Location: login.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForceEveryoneToLogin"); 

 


Postado

@edvan Então edvan eu tentei aplicar isso no template six só que realmente não funcionou .

{if !$loggedin}
<br />
<div class="errorbox">Acesso restrito a clientes!</div>
<br /><br /><br />
{else}
<form role="form" method="post" action="{routePath('knowledgebase-search')}">
    <div class="input-group input-group-lg kb-search">
        <input type="text" id="inputKnowledgebaseSearch" name="search" class="form-control" placeholder="What can we help you with?" />
        <span class="input-group-btn">
            <input type="submit" id="btnKnowledgebaseSearch" class="btn btn-primary btn-input-padded-responsive" value="{$LANG.search}" />
        </span>
    </div>
</form>

<h2>{$LANG.knowledgebasecategories}</h2>

{if $kbcats}
    <div class="row">
        {foreach from=$kbcats name=kbcats item=kbcat}
            <div class="col-sm-4">
                <a href="{routePath('knowledgebase-category-view', {$kbcat.id}, {$kbcat.urlfriendlyname})}">
                    <i class="fa fa-folder-open-o"></i>
                    {$kbcat.name} ({$kbcat.numarticles})
                </a>
                <p>{$kbcat.description}</p>
            </div>
            {if $smarty.foreach.kbcats.iteration mod 2 == 0}
                </div><div class="row">
            {/if}
        {/foreach}
    </div>
{else}
    {include file="$template/includes/alert.tpl" type="info" msg=$LANG.knowledgebasenoarticles textcenter=true}
{/if}

{if $kbmostviews}

    <h2>{$LANG.knowledgebasepopular}</h2>

    <div class="kbarticles">
        {foreach from=$kbmostviews item=kbarticle}
            <a href="{routePath('knowledgebase-article-view', {$kbarticle.id}, {$kbarticle.urlfriendlytitle})}">
                <span class="glyphicon glyphicon-file"></span>&nbsp;{$kbarticle.title}
            </a>
            <p>{$kbarticle.article|truncate:100:"..."}</p>
        {/foreach}
    </div>

{/if}
{/if}

 

FOX SOLUÇÕESTransforme problemas em soluções | www.foxsolucoes.com
-> Gerenciamento Linux especializado para quem não pode parar.
-> Consultoria, otimização e operação completa de ambientes VPS, dedicados e cloud.


Postado
  • Autor
1 hora atrás, edvan disse:

Acredito que você não fez corretamente pois mesmo sendo um post de 2014 funciona normalmente, veja exemplo:

Visitante http://prntscr.com/h1tc8f

Cliente logado http://prntscr.com/h1td7a

Estranho, testei e nao funcionou no Six

1 hora atrás, rgazetta disse:

Segue o hooks que faz isso para qualquer pagina que desejar.

Na linha

if (!in_array($vars['filename'], array(

você pode inserir as páginas que serão liberadas para acesso sem login.


 <?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForceEveryoneToLogin($vars) {

    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (!in_array($vars['filename'], array("login","dologin","clientarea","pwreset","index","register","cart","submitticket","viewticket")) && $clientID===0){
            header("Location: login.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForceEveryoneToLogin"); 

 

Olá amigo, boa tarde.

Este hook bloqueia tudo e libera apenas o que quero correto ?

 

Seria possivel esta variável bloquear apenas a pagina da base de conhecimento ?

Perdoe minha ignorância, tenho pouco conhecimento em programação e não sei inverter este bloqueio.


Postado
10 minutos atrás, Otavio disse:

@edvan Então edvan eu tentei aplicar isso no template six só que realmente não funcionou .


{if !$loggedin}
<br />
<div class="errorbox">Acesso restrito a clientes!</div>
<br /><br /><br />
{else}
<form role="form" method="post" action="{routePath('knowledgebase-search')}">
    <div class="input-group input-group-lg kb-search">
        <input type="text" id="inputKnowledgebaseSearch" name="search" class="form-control" placeholder="What can we help you with?" />
        <span class="input-group-btn">
            <input type="submit" id="btnKnowledgebaseSearch" class="btn btn-primary btn-input-padded-responsive" value="{$LANG.search}" />
        </span>
    </div>
</form>

<h2>{$LANG.knowledgebasecategories}</h2>

{if $kbcats}
    <div class="row">
        {foreach from=$kbcats name=kbcats item=kbcat}
            <div class="col-sm-4">
                <a href="{routePath('knowledgebase-category-view', {$kbcat.id}, {$kbcat.urlfriendlyname})}">
                    <i class="fa fa-folder-open-o"></i>
                    {$kbcat.name} ({$kbcat.numarticles})
                </a>
                <p>{$kbcat.description}</p>
            </div>
            {if $smarty.foreach.kbcats.iteration mod 2 == 0}
                </div><div class="row">
            {/if}
        {/foreach}
    </div>
{else}
    {include file="$template/includes/alert.tpl" type="info" msg=$LANG.knowledgebasenoarticles textcenter=true}
{/if}

{if $kbmostviews}

    <h2>{$LANG.knowledgebasepopular}</h2>

    <div class="kbarticles">
        {foreach from=$kbmostviews item=kbarticle}
            <a href="{routePath('knowledgebase-article-view', {$kbarticle.id}, {$kbarticle.urlfriendlytitle})}">
                <span class="glyphicon glyphicon-file"></span>&nbsp;{$kbarticle.title}
            </a>
            <p>{$kbarticle.article|truncate:100:"..."}</p>
        {/foreach}
    </div>

{/if}
{/if}

 

Que estranho, editei o six e não tive problemas.

Veja o vídeo http://nimb.ws/x5DPyv

Você testou com uma janela anônima?


Postado

@edvan Agora descobri oque errei  kk , criei uma cópia e não havia definido  esse novo template deu certo sim, me desculpe pelo erro sonso .

FOX SOLUÇÕESTransforme problemas em soluções | www.foxsolucoes.com
-> Gerenciamento Linux especializado para quem não pode parar.
-> Consultoria, otimização e operação completa de ambientes VPS, dedicados e cloud.


Postado
7 minutos atrás, Otavio disse:

@edvan Agora descobri oque errei  kk , criei uma cópia e não havia definido  esse novo template deu certo sim, me desculpe pelo erro sonso .

Sem problemas!

Ou utilize esse hook ( baseado no tópico https://whmcs.community/topic/252505-how-to-restrict-all-pages-to-logged-in-users-only/ ) que irá solicitar login para FAQ e Anúncios.

<?php
if (!defined("WHMCS"))
    die("This file cannot be accessed directly");

function hook_ForcarLoginTemplates($vars) {	
	
    $clientID = intval($_SESSION['uid']);
    $adminID = intval($_SESSION['adminid']);
    
    if ($adminID===0){
        if (in_array($vars['templatefile'], array("knowledgebase","announcements")) && $clientID===0){
            header("Location: ../clientarea.php");
            exit;
        }
    }

}
add_hook("ClientAreaPage", 1, "hook_ForcarLoginTemplates"); 

 



Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.
Nota: Sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Infelizmente, seu conteúdo contém termos que não são permitimos. Edite seu conteúdo para remover as palavras destacadas abaixo.
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Informação Importante

Concorda com os nossos termos?