Aldeia Numaboa

  • Increase font size
  • Default font size
  • Decrease font size

O objeto JUser

Indique esta página Imprimir PDF
(6 votos, média 4.3 de 5)

Image Qualquer requisição feita ao Joomla sempre parte de um usuário. Para identificar, avaliar ou autorizar o usuário, o framework do Joomla 1.5 oferece um objeto especial: o JUser.

Para obter o objeto usuário lançamos mão do JFactory, o todo-poderoso multi-tarefa sorriso

$usuario =& JFactory::getUser();

Observe que pegamos o objeto por referência usando =& (e não apenas = ). Isto evita que dezenas (ou até centenas) de objetos usuários sejam criados inutilmente sobrecarregando a memória e aumentando o tempo de processamento - é melhor trabalhar com uma cópia do que com um objeto novinho em folha!

A maioria das informações sobre o usuário estão disponíveis através de variáveis públicas do objeto usuário. As mais importantes são:

  • id - a identificação numérica, única para cada usuário. Use-a quando referenciar o registro do usuário em outras tabelas de dados.
  • name - o nome do usuário (por exemplo, Thiago Leite)
  • username - nome de usuário (por exemplo, exterminator2008)
  • email - endereço de email do usuário (por exemplo, Este endereço de email está protegido contra SpamBots. Você precisa ter o JavaScript habilitado para vê-lo. )
  • password - a senha do usuário, na forma encriptada.
  • password_clear - existe apenas quando a senha do usuário está sendo alterada. Se não for este o caso, está em branco.
  • usertype - tipo de usuário (por exemplo, Super Administrator, Editor, etc)
  • gid - a identificação do grupo ao qual o usuário pertence e que corresponde ao tipo de usuário.
  • block - se o usuário está bloqueado (1) ou não (0).
  • registerDate - a data do registro do usuário.
  • lastvisitDate - data da última visita do usuário ao site.
  • guest - indica se o usuário está logado (0) ou não (1). Guest significa visitante, convidado: se um usuário registrado não está logado é apenas um visitante (1), se estiver logado então não é apenas visitante (0)

Além destas variáveis (que são armazenadas em campos na base de dados) existem parâmetros que contém as preferências do usuário. Para se obter estes parâmetros é preciso usar a função getParam( ) do objeto usuário. Por exemplo:

$usuario =& JFactory::getUser();
$idioma = $user->getParam('language', 'the default');
 
echo "<p>Seu idioma foi indicado como sendo $language.</p>";

Tá bão, mas qual poderia ser a aplicação prática de tudo isto? Aqui estão alguns exemplos. Digamos que você queira criar um componente que mostre algumas informações de usuários. Neste caso, as linhas de código seriam:

$user =& JFactory::getUser();
echo "<p>Seu nome é $user->name, seu email é $user->email
e seu nome de usuário é $user->username</p>";
echo "<p>Seu tipo de usuário é $user->usertype, o qual tem a identificação
de grupo $user->gid.</p>";

Nem todos usuários logados possuem os mesmos privilégios. Por exemplo, o Super Administrator pode editar qualquer conteúdo, já o Publisher pode editar apenas seus próprios artigos. Para determinar os direitos do usuário de acordo com o grupo ao qual ele pertence, pode-se usar a função authorize( ) do objeto usuário. O primeiro parâmetro desta função indica o componente ou a função que deve ser autenticada, o segundo representa a tarefa. O terceiro e quarto parâmetros são opcionais e servem para refinar a determinação dos privilégios.

No Joomla 1.5, os direitos de todos os componentes do sistema estão em libraries/joomla/user/authorization.php. Se o componente que você estiver criando não precisar de autorizações adicionais, então este trecho de código servirá aos seus propósitos:

$usuario =& JFactory::getUser();
 
if ($usuario->authorize('com_content', 'edit', 'content', 'all')) {
   echo "<p>Você pode editar todos os artigos.</p>";
} else {
   echo "<p>Você não pode editar todos os artigos.</p>";
}
 
if ($usuario->authorize('com_content', 'publish', 'content', 'own')) {
   echo "<p>Você pode publicar seus próprios artigos.</p>";
} else {
   echo "<p>Você não pode publicar seus próprios artigos.</p>";
}

Caso as permissões para as funções do sistema não atendam suas necessidades, então será preciso criar suas próprias permissões. Neste caso, coloque o código onde possa ser executado (geralmente no início do código do seu componente ou plugin). Primeiro é preciso criar um objeto autorização com a função getACL( ) do JFactory, depois use a função addACL( ) deste objeto para adicionar uma permissão. Passe o nome do seu componente ou função, o nome da tarefa, a string 'users' e o tipo de usuário (tudo em letra minúscula!).

$autoriza =& JFactory::getACL();
 
$autoriza->addACL('com_seucomponente', 'convencer', 'users', 'super administrator');
$autoriza->addACL('com_seucomponente', 'convencer', 'users', 'administrator');
$autoriza->addACL('com_seucomponente', 'convencer', 'users', 'manager');
 
$usuario =& JFactory::getUser();
 
if ($usuario->authorize('com_seucomponente', 'convencer')) {
   echo "<p>Você pode convencer o sistema para fazer o que quiser.</p>";
} else {
   echo "<p>Você não é muito convincente.</p>";
}
Fonte

JUser tutorial for Joomla! 1.5

Atualização Ter, 14.04.2009 19:46  

Na Aldeia

Há 111 visitantes online

3630 registros
0 hoje
14 nesta semana
4 neste mês

Boas vindas: flor

Estatística

Membros: 3639
Artigos: 1045
Links: 90
Leituras: 6680870

Login

Kanji da hora




Faça contato







Você conhece a brincadeira do o que é, o que é? Tem algumas bonitinhas como o que é, o que é? Cai de pé e corre deitada! (a chuva) ou, o que é, o que é? Quando entra na casa fica do lado de fora! (o botão da camisa). E esta aqui, será que você mata?

Leia Mais