como puedo dar roles a diferentes usuarios según se logee le muestre una interfaz.

802 views
Skip to first unread message

wilder Hernández Garcia

unread,
Apr 7, 2015, 9:06:08 PM4/7/15
to djan...@googlegroups.com
como dar roles a usuarios según se logee que muestre su interfaz: ejemplo. Gracias.
 
administrado = index_administrador.html
almacenero=index_almacenero.html
vendedor = index_vendedor.html

Julián Cortés

unread,
Apr 7, 2015, 9:18:54 PM4/7/15
to djan...@googlegroups.com
Puede asignar los usuarios a diferentes grupos. A esos grupos darle permisos, y en una misma plantilla muestrar elementos de acuerdo a los permisos. Ejemplo:

Grupos:

    vendedor
    almacenero
    administrador

Usuarios:
    andres -> grupo: venedor
    camilo -> grupo: almacenero
    juan -> grupo: administrador



en la plantilla:

{% if perms.nombre_app.nombre_permiso %}
    <a href="">link</a>
{% else %}

En ese ejemplo, los usuarios o grupos que tengan el permiso "nombre_permiso", podrán ver el link, los demás no.

Espero me haya hecho explicar.

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
           pity

01110000 01101001 01110100 01111001

Google+: +JuliánCortés
Twitter: __pity7736__

Ricardo Daniel Quiroga

unread,
Apr 8, 2015, 12:20:41 AM4/8/15
to Grupo Django-Es
hola 
emmm es correcto, pero para ser esquisito con el MVC eso deberia estar en la logica de la vista, no de la plantilla, 
mm yo crearla varias plantilla, por lo general dejo un tag al estilo

<nav>
    {{ menu }}
</nav>

en algun lugar donde estoy almacenando las plantillas escribo un fragmento de HTML con los menu de cada uno

menu/
  admin.tpl
  almacenero.tpl
  vendedor.tpl

creo una funcion de carga por ahi en algun lugar donde este almacenando mis funciones

def get_user_menu(request):
    """
        carga el menu de acuerdo al tipo de usuario
    """
    if request.user.is_authenticated():
        group_name = request.user.groups.all()[0].name

        if group_name == "Administrador":
            tpl_name = "menu/administrado.tpl"

        elif group_name == "Vendedor":
            tpl_name = "menu/vendedor.tpl"
        
        else:
            tpl_name = "menu/no-login.tpl"
    else:
        tpl_name = "menu/no-login.tpl"
        
    return render_to_string(tpl_name, {})


y en la vista digamos que la la variable data almacenaria el contexto

def mi_vista(request):
    template = get_template('plantilla.tpl')
    data["menu"] = get_user_menu(request)
    #el resto del codigo

es mas rebuscada  y ya se me diran es repetitivo, pero la idea es que la logica de la aplicacion este dentro de la vista 
no de la plantilla mientras sea posible.

Saludos


Ricardo Daniel Quiroga

wilder Hernández Garcia

unread,
Apr 8, 2015, 12:47:56 AM4/8/15
to djan...@googlegroups.com
Gracias por las respuestas, estaba investigando y encontré sobre django decorators login_required, se puede hacer también con decorators.

Has recibido este mensaje porque estás suscrito a un tema del grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/django-es/q_63mnLkMyA/unsubscribe.
Para anular la suscripción a este grupo y a todos sus temas, envía un correo electrónico a django-es+...@googlegroups.com.

Julián Cortés

unread,
Apr 8, 2015, 2:09:33 PM4/8/15
to djan...@googlegroups.com
Sí cualquiera de las dos funciona.

Con respecto a MVC, no estoy haciendo nada de lógica en la plantilla, con el hecho de que esté haciendo una condición, no significa que haya lógica de negocio como tal.
Reply all
Reply to author
Forward
0 new messages