I think this one may have been solved but I'll give it a shot.  I am
getting some kind of attribute error when the user logs on.  Maybe you
can help.

Page handler: <bound method Root.index of <turbolink.controllers.Root
object at 0x0170AFF0>>
Traceback (most recent call last):
  File
"C:\Python24\lib\site-packages\cherrypy-2.2.1-py2.4.egg\cherrypy\_cphttptools.py",
line 105, in _run
    self.main()
  File
"C:\Python24\lib\site-packages\cherrypy-2.2.1-py2.4.egg\cherrypy\_cphttptools.py",
line 254, in main
    body = page_handler(*virtual_path, **self.params)
  File "<string>", line 3, in index
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\controllers.py",
line 326, in expose
    output = database.run_with_transaction(
  File "<string>", line 5, in run_with_transaction
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\database.py",
line 246, in so_rwt
    retval = func(*args, **kw)
  File "<string>", line 5, in _expose
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\controllers.py",
line 343, in <lambda>
    mapping, fragment, args, kw)))
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\controllers.py",
line 367, in _execute_func
    output = errorhandling.try_call(func, *args, **kw)
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\errorhandling.py",
line 71, in try_call
    return func(self, *args, **kw)
  File
"C:\Python24\Lib\site-packages\ft8\turboLink\tg\turbolink\controllers.py",
line 61, in index
    return TurboLinkDict()
  File
"C:\Python24\Lib\site-packages\ft8\turboLink\tg\turbolink\TurboLinkDict.py",
line 25, in __init__
    if identity.in_group('admin'):
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\identity\conditions.py",
line 73, in __nonzero__
    return self.eval_with_object( current )
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\identity\conditions.py",
line 86, in eval_with_object
    if self.group_name in identity.groups:
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\identity\__init__.py",
line 58, in __getattr__
    return getattr(identity, name)
  File
"C:\Python24\lib\site-packages\turbogears-1.0b1-py2.4.egg\turbogears\identity\saprovider.py",
line 81, in _get_groups
    self._groups = frozenset([g.group_name for g in self.user.groups])
AttributeError: 'User' object has no attribute 'groups'

Model.py:

class Visit(ActiveMapper):
    class mapping:
        __table__ = "visit"
        visit_key = column(String(40), primary_key=True)
        created = column(DateTime, nullable=False,
default=datetime.now)
        expiry = column(DateTime)

    def lookup_visit(cls, visit_key):
        return Visit.get(visit_key)
    lookup_visit = classmethod(lookup_visit)

# tables for SQLAlchemy identity
user_group = Table("user_group", metadata,
                      Column("user_id", Integer,
                              ForeignKey("tg_user.user_id"),
                              primary_key=True),
                      Column("group_id", Integer,
                              ForeignKey("tg_group.group_id"),
                              primary_key=True))

group_permission = Table("group_permission", metadata,
                            Column("group_id", Integer,
                                    ForeignKey("tg_group.group_id"),
                                    primary_key=True),
                            Column("permission_id", Integer,
                                ForeignKey("permission.permission_id"),
                                    primary_key=True))


class VisitIdentity(ActiveMapper):
    class mapping:
        __table__ = "visit_identity"
        visit_key = column(String(40), # foreign_key="visit.visit_key",
                          primary_key=True)
        user_id = column(Integer, foreign_key="tg_user.user_id",
index=True)


class Group(ActiveMapper):
    """
    An ultra-simple group definition.
    """
    class mapping:
        __table__ = "tg_group"
        group_id = column(Integer, primary_key=True)
        group_name = column(Unicode(16), unique=True)
        display_name = column(Unicode(255))
        created = column(DateTime, default=datetime.now)

        users = many_to_many("User", user_group, backref="groups")
        permissions = many_to_many("Permission", group_permission,
                                   backref="groups")


class User(ActiveMapper):
    """
    Reasonably basic User definition. Probably would want additional
attributes.
    """
    class mapping:
        __table__ = "tg_user"
        user_id = column(Integer, primary_key=True,)
        user_name = column(Unicode(16), unique=True)
        email_address = column(Unicode(255), unique=True)
        display_name = column(Unicode(255))
        password = column(Unicode(40))
        created = column(DateTime, default=datetime.now)
        enabled = column(Boolean, default=False)

        groups = many_to_many("Group", user_group, backref="users")

    def permissions(self):
        perms = set()
        for g in self.groups:
            perms = perms | set(g.permissions)
        return perms
    permissions = property(permissions)


class Permission(ActiveMapper):
    class mapping:
        __table__ = "permission"
        permission_id = column(Integer, primary_key=True)
        permission_name = column(Unicode(16), unique=True)
        description = column(Unicode(255))

        groups = many_to_many("Group", group_permission,
                              backref="permissions")


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to