[RESOLVIDO] Redirecionar para dashboard por grupo de usuário

Bom dia.
Mais uma dúvida de novato no uso do PHP e do Scriptcase.

Gostava que ao abrir a aplicação, após o login, fosse redirecionado para um dashboard diferente consoante o grupo a que pertence o usuário.

O que fiz:
Criei uma blank (prepara_entrada) que é chamada pelo menu (lá em Configuração - Aplicação). Dentro da blank coloquei este código aqui:

$sql = “Select sec_groups.description From sec_users_groups Inner Join sec_groups On sec_users_groups.group_id = sec_groups.group_id Where sec_users_groups.login = '” . $usr_login ."’"

sc_lookup(rs, $sql);

if(count({rs}) > 0)
{
$usergrupo = {rs[0][0]};
}
else
{
$usergrupo = “”;
}

if $usergrupo == ‘Aluno’
{
sc_redir(dashboard);
}
else
{
sc_redir(dashboardescola);
}

Mas não está a apresentar os dashboards, apenas a blank.

O que estou a fazer errado?

Coloque-o antes de ambos o “sc_commit_trans()” sc_redir desta forma…
sc_commit_trans();
sc_redir(dashboard);

e

sc_commit_trans();
sc_redir(dashboardescola);

Obrigado pela resposta Joelton mas continua a não funcionar.

sc_redir(aplx.php);

nao ta faltando o .php ?

Obrigado Flavio mas também não funcionou :frowning:

$usr_login deveria ser uma global: [usr_login]

@joeltonsilva, não entendi a razão do sc_commit_trans().

Bom dia Haroldo

Nop, continua a não dar

de uma echo na variável $usergrupo e comente o sc_redir.

Agora, por questão de lógica, sec_gorups pode ter mais de um registro por login, vc esta somente pegando o primeiro.

Mude seu select para filtrar o login e a descrição do grupo, se retornar um resultado quer dizer que terá que desviar para dashboard caso contrário para dashboardescola.

Como dica vc pode fazer isso direto no menu, não precisa de uma blank.

$sql = "
Select count(*)  
From sec_users_groups 
Inner Join sec_groups On sec_users_groups.group_id = sec_groups.group_id 
Where sec_users_groups.login = '{[usr_login]}' and sec_groups.description = 'Aluno'
";

sc_lookup(rs,$sql);

if (count($rs) )  sc_redir(dashboard);
else  sc_redir(dashboardescola);

Haroldo, no meu caso o sec_groups vai sempre trazer apenas 1 registo uma vez que nunca vai ser autorizado que um mesmo login pertença a 2 ou mais grupos.

Consegui resolver usando o seguinte código no blank que é chamado pelo menu:

$_sql = “Select sec_groups.description From sec_users_groups Inner Join sec_groups On sec_users_groups.group_id = sec_groups.group_id Where sec_users_groups.login = ‘[usr_login]’”;
sc_lookup(rs,$_sql);
[grupodouser] = $rs[0][0];

if ([grupodouser] == “Alunos”) {
sc_redir(“dashboard.php”);
}
else {
sc_redir(“dashboarescola.php”);
}

Aproveito para criar logo uma variável global ([grupodouser]) que assim pode vir a ser usada noutras circunstâncias no futuro.

O problema principal que estava a ter era a chamada da macro sc_redir. Tem de ser usada com " e a extensão .php

Obrigado a todos os que ajudaram.

2 Curtidas

Perfeito!
Era o que eu estava querendo!

Obrigado