Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Perfil adminstrador

Prezados(as), boa tarde.

Fiz um cadastro de usuário(funcionário, no caso) que tem a opção "administrador" em um checkbox. Fiz as funções de lógica-usuário como ensinado no curso e funcionaram perfeitamente, mas gostaria que apenas o usuário administrador tivesse acesso a algumas paginas da minha aplicação. Por gentileza, poderiam me ensinar a como utilizar essa $administrador = true como parametro junto com o "usuario_logado" ? Segue alguns trechos de código:

function logaUsuario($email){
    $_SESSION["usuario_logado"] = $email;
}


function usuarioLogado(){
    return $_SESSION["usuario_logado"];
}

function usuarioEstaLogado(){
    return isset($_SESSION["usuario_logado"]);
}

function verificaUsuario(){
    if(!usuarioEstaLogado()){
        $_SESSION["danger"] = "Você não tem acesso a essa funcionalidade!";
        header("Location: index.php");
        die();
    }
}

Desde já, agradeço pela atenção :)

4 respostas

Igor boa tarde! O ideal seria você criar uma classe Administrador e então você faz a verificação com o operador instanceof.

vou mostrar um exemplo simples, ai você adapta ao seu sistema. obs: Estou usando PHP 7

<?php 
//crio uma interface para que todos os usuáros implementem
  interface Usuario{
  }
  //administrador implementa Usuário
  class Administrador implements Usuario{
  }

  class UsuarioComum implements Usuario{
  }

  //verifica se é um Admnistrador;
  function verificaUsuario(Usuario $user){
    if($user instanceof Administrador){
      echo "É administrador";
    }else{
      echo "não é Administrador";
    }
  }

  //testando a implementação!
  $novoAdmin  = new Administrador();
  $novoUser   = new UsuarioComum();

  verificaUsuario($novoAdmin);
  echo "<br>";
  verificaUsuario($novoUser);

Ramires, boa noite.

Obrigado pelo suporte.

Desculpe o questionamento, mas estou fazendo o programa de forma estrutural. É possível implementar essa sua solução ?

solução!

Olá boa tarde Igor, da pra fazer isso de forma funcional sim.

$_SESSION['usuario_logado'] = true;
$_SESSION['tipo_usuario']   = "admin"; 

function validaUser(){
  if($_SESSION['usuario_logado'] || $_SESSION['tipo_usuario'] == "admin"){
    echo "voce tem acesso a essa parte do sistema";
  }else{
    echo "voce nao ten acesso a essa parte do sistema entre como admin";
  }
}
//chamando a função
validaUser();

aí você chama a função toda vez que precisar verificar a permissão do usuário.

Lógico que os echo são só para exemplificar, você coloca dentro do if, else sua lógica, você pode redirecionar ele para uma outra página etc.

Isso ajuda?

Ajudou sim Ramires, estarei implementando no meu sistema.

Muito obrigado.