Hi, I've a SubController with four methods, three of these, in your
decorator Identity I have many roles, including a administrator role
and another method with only a administrator Role.    When i access
these method with a administrator user, everything works right, but
when I access the methods with for example, with a Supervisor role, I
receive the "Please login" message!

Above, my subcontroller class:

import logging

import cherrypy

import time

import turbogears
from turbogears import controllers, expose, validate, redirect
from turbogears import identity
from turbogears.database import session

from turbogears import widgets
from turbogears.widgets import DataGrid
from turbogears.widgets import PaginateDataGrid
from turbogears.widgets import
RemoteForm,TextField,CheckBox,RadioButtonList,PasswordField
from turbogears.widgets.base import WidgetsList

from elementtree import ElementTree as ET
from tgorcamentos import json

from Orcamentos.Despesas.CentroCustoDespesa import CentroCustoDespesa
from Orcamentos.Despesas.Despesas import Despesas as DespesasOrcamentos
from Orcamentos.Despesas.ContaContabil import ContaContabil


log = logging.getLogger("tgorcamentos.Orcamentos.Despesas.controllers")



def getString(fieldname):
    return lambda x: unicode(x.get(fieldname),'utf-8')
def getValor(fieldname):
    return lambda x: x.get(fieldname)


# Gera um Link dentro do DataGrid.
class geraLink:
    def __init__(self, baseurl, id, title, action):
        self.baseurl=baseurl
        self.id=id
        self.title=title
        self.action=action

    def __call__(self, obj):
        url=controllers.url(self.baseurl,
dict(id=obj[self.id],action=self.action))
        link = ET.Element('a', href=url, id='gridLink' )
        link.text = obj[self.title]
        return link




class ContasContabeis:

    #Datagrid (Lista Contas Contabeis Cadastradas)

    @expose(template="tgorcamentos.templates.contascontabeis")

@identity.require(identity.in_any_group('Administrador_orc','ChefeDepartamento','ChefeGabinete',\

'Coordenador','CoordenadorCurso','DiretorCampus','DiretorCentro',\

'DiretorInstituto','DiretorMantida','DiretorNucleo','ProReitor',\
                                            'Reitor','Supervisor'))
    @turbogears.paginate('contascontabeis', default_order='codigo',
limit=25)
    def index(self):
        cadastro = self.cadastro()

        mylink=geraLink('contascontabeis_cadastro',
'COD_CONTA_CONTABIL', 'COD_CONTA_CONTABIL', 'edit')

        self.ccustoDespesa=CentroCustoDespesa()
        contas=self.ccustoDespesa.carregarContasContabeis()

        lista_contas = PaginateDataGrid(
          fields=[
            PaginateDataGrid.Column(name='codigo', getter=mylink,
title=unicode('Código','utf-8'),
            options=dict(sortable=True)),

PaginateDataGrid.Column(name=unicode('descrição','utf-8'),
getter=getString('DESCRICAO'),
            options=dict(sortable=True))
                 ])

        return dict(contascontabeis=contas , list=lista_contas)


    @expose(template="tgorcamentos.templates.contascontabeis_cadastro")
    @identity.require(identity.in_group('Administrador_orc'))
    def cadastro(self):
        item_searchform = RemoteForm(
            name="FormCtaContabil",
            fields=[TextField("codigo"),
                    TextField ("descricao")],
            submit_text="Enviar")
        return dict(item_searchform=item_searchform)


    @turbogears.expose(format = "json")
    @identity.require(identity.in_group('Administrador_orc'))
    def cadastrar(self, **kw):
        self.ccontabil = ContaContabil()
        self.ccontabil.descricao=str(kw['descricao'])
        self.ccontabil.codigo=str(kw['codigo'])
        if self.ccontabil.gravar():
            return "Item cadastrado com sucesso."
        else:
            return "Erro ao gravar!"
    cadastrar = expose()(cadastrar)


class Orcamentos:
    contascontabeis = ContasContabeis()


PS.: Sorry about my english, it's not so good! :P


--~--~---------~--~----~------------~-------~--~----~
 You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to