Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Message from discussion Melhor forma de armazenar profile em sessão
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Matheus Lima  
View profile   Translate to Translated (View Original)
 More options Nov 14 2012, 3:54 pm
From: Matheus Lima <matheus...@gmail.com>
Date: Wed, 14 Nov 2012 17:54:26 -0300
Local: Wed, Nov 14 2012 3:54 pm
Subject: Re: Melhor forma de armazenar profile em sessão

Não sei se me expressei bem, mas a parte de permissões não quero alterar. O
perfil do usuário não é um grupo.

Seria algo como: Um sistema de vendas que será utilizado por vários
vendedores. Cada vendedor terá no mínimo uma "loja" (isso seria o perfil).
Com o mesmo login, o usuário pode ter N "lojas", mas assim que logar, ele
deve escolher qual loja ele quer acessar, pois ele só pode ver o conteúdo
de uma loja por vez.

A minha dúvida é o seguinte: Eu quero que assim que o usuário logue, seja
solicitado a escolher uma loja. Qualquer view que requerer login, solicita
que o usuário escolha uma loja, caso ele não feito isso.

Eu pensei em armazenar em sessão algo como "current_store", com o id da
loja dele.

Não sei qual mecanismo utilizar. Eu poderia extender o backend de
autenticação pra isso? Ou seria melhor criar um decorator "store_required"
e decorar todas as views, para testar se a sessão é válida?

Em 14 de novembro de 2012 08:41, Vinicius Assef <vinicius...@gmail.com>escreveu:

> Para maior flexibilidade de um sistema de permissões, tente não fazer
> checagens do tipo "usuário logado pertence ao grupo 1?".

> Ao invés disso, teste se "usuário logado tem a permissão X". Isso dá mais
> liberdade para implementar grupos (ou profiles) conforme a necessidade do
> negócio, sem implicar em mudança no seu código-fonte.

> Talvez, na situação do Matheus, faça algum sentido para um log, mas nunca
> encontrei um sentido para testar permissões mesmo. E se você encontrar, no
> futuro terá que criar algumas exceções. A não ser que seu sistema tenha
> permissões realmente muito simples.

> Algumas exceções que já me deparei foram: "o usuário fulano pertence ao
> grupo 1, mas eu não quero que ele tenha acesso à tela X". Se isso acontecer
> um dia (e acredite, é muito comum), seu esquema de verificação por grupos
> vai por água abaixo. Outra situação que foge à regra das permissões por
> grupos, mas não à rotina da empresas é "só o gerente fulano pode aprovar
> isso, mas ele vive em reunião. Então, a secretária dele tem o usuário/senha
> dele e aprova no lugar dele." Bem, nem preciso explorar muito esse cenário,
> né?

> Com os testes por permissão, ao invés de por grupo, é possível lidar com
> situações que adicionem/retirem permissões a/de um determinado usuário, sem
> precisar mexer em seu código-fonte.

> Mas, para isso, no caso do Django, é necessário um backend de autenticação
> que trate essa situação.

> Para quem quiser expandir os estudos nesse assunto:
> http://en.wikipedia.org/wiki/Rbac

> Fica a dica.

> --
> Vinicius Assef

> 2012/11/14 Elyézer Mendes Rezende <elyeze...@gmail.com>

>> Pelo que entendi, creio que você possa usar grupos para resolver o
>> problema.

>> Se o usuário está no profile1 (grupo1) ele tem certas permissões que
>> permitem ver tudo relacionado ao profile1. Se estiver no profile2 também,
>> estará no grupo2 e terá outras permissões que permitem que veja outros
>> conteúdos.

>> O trabalho que você vai ter será adicionar os usuários no grupo e marcar
>> as views com as permissões requeridas.

>> Abraço

>>  2012/11/14 Matheus Lima <matheus...@gmail.com>

>>> Boa noite,

>>> Pessoas, estou criando um sistema onde o usuário terá um ou mais
>>> profiles.

>>> Todo o conteúdo do sistema é associado a um profile. Cada usuário só
>>> enxerga o que pertence ao profile logado.

>>> A parte de separação do conteúdo está ok, assim como a modelagem.

>>> A minha dúvida é sobre qual a melhor forma de fazer a verificação se o
>>> usuário escolheu um profile. Eu pensei em algumas soluções, como: criar um
>>> decorator (ficaria muito repetitivo), atrelar ao backend de autenticação
>>> (não gostei muito dessa) ou criar um middleware depois da camada de
>>> autenticação para verificar se o usuário escolheu um profile.

>>> Eu acho que a solução do middleware seria mais limpa pra aplicação,
>>> porém tem páginas que são públicas, como a página inicial, contato e a tela
>>> de login.

>>> Alguém tem alguma sugestão ou algum exemplo de código?

>>> --
>>> Att,
>>> *
>>> *
>>> *Matheus dos Santos Lima  ** <http://twitter.com/matheeusLimaaa>  <http://www.facebook.com/profile.php?id=100001639854566>
>>>  *

>>>  --

>> --
>> Elyézer Rezende
>> http://elyezer.com

>> --

>  --

--
Att,
*
*
*Matheus dos Santos Lima  ** <http://twitter.com/matheeusLimaaa>
<http://www.facebook.com/profile.php?id=100001639854566>
 *

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.