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