Informática Numaboa - Tutoriais e Programação
O objeto JUser
Dom 17 Fev 2008 09:26 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:35
- Autor: vovó Vicki
- Acessos: 6669
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
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, O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled 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:
Seu idioma foi indicado como sendo $language.
";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:
Seu nome é $user->name, seu email é $user->email e seu nome de usuário é $user->username
"; echo "Seu tipo de usuário é $user->usertype, o qual tem a identificação de grupo $user->gid.
";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:
Você pode editar todos os artigos.
"; } else { echo "Você não pode editar todos os artigos.
"; } if ($usuario->authorize('com_content', 'publish', 'content', 'own')) { echo "Você pode publicar seus próprios artigos.
"; } else { echo "Você não pode publicar seus próprios artigos.
"; }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!).
Você pode convencer o sistema para fazer o que quiser.
"; } else { echo "Você não é muito convincente.
"; }