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á 123 visitantes e 1 usuário registrado online

3296 registros
0 hoje
1 nesta semana
33 neste mês

Boas vindas: chufu

Estatística

Artigos: 1063
Leituras: 6023007
Arquivados: 21
Downloads: 533
Baixados: 171952
Glossário: 1208
Bibliografia: 25
Links: 90

Visitas de onde

Top 5:
Brasil flag 73%Brasil (42243)
Portugal flag 5%Portugal (2633)
EUA flag 3%EUA (1988)
Rússia flag 0%Rússia (243)
Holanda flag 0%Holanda (237)
57952 visitas de 98 países

Hoje:619
Ontem:1791
No mês:32137
Mês passado:25815
Total:57952
Recorde:3037
No dia:04.03.10
Leituras hoje:16658
Leituras Total:255170
Bots hoje:189
Dados desde:16.02.2010

Login

Kanji da hora




Faça contato







Juro por Deus que estou morta de vergonha. Ao invés do nosso presidente ouvir os apelos e tentar ajudar, ele "tira sarro" de prisioneiros políticos perseguidos pelo seu lunático amigo Castro, apreciador do frango ensopado de dona Letícia.

Leia Mais