aboutsummaryrefslogtreecommitdiffstats
path: root/Bugs-Everywhere-Web/beweb/model.py
diff options
context:
space:
mode:
authorChris Ball <cjb@laptop.org>2009-07-23 17:49:13 -0400
committerChris Ball <cjb@laptop.org>2009-07-23 17:49:13 -0400
commit6a639574fa95e50f82fa3052e5524b961295a7ab (patch)
treeb498654ed1dcbdbba94605292c280c883c5e9faa /Bugs-Everywhere-Web/beweb/model.py
parent5e249abfee7273c79640c4211607a6b4bf7b374c (diff)
parentcaf0111d9c571ac268c235880e6d18fa512e9efa (diff)
downloadbugseverywhere-6a639574fa95e50f82fa3052e5524b961295a7ab.tar.gz
Merge large rework from W. Trevor King.
Diffstat (limited to 'Bugs-Everywhere-Web/beweb/model.py')
-rw-r--r--Bugs-Everywhere-Web/beweb/model.py107
1 files changed, 0 insertions, 107 deletions
diff --git a/Bugs-Everywhere-Web/beweb/model.py b/Bugs-Everywhere-Web/beweb/model.py
deleted file mode 100644
index aa4b6b6..0000000
--- a/Bugs-Everywhere-Web/beweb/model.py
+++ /dev/null
@@ -1,107 +0,0 @@
-from datetime import datetime
-
-from sqlobject import *
-from turbogears.database import PackageHub
-from turbogears import identity
-
-hub = PackageHub("beweb")
-__connection__ = hub
-
-class Visit(SQLObject):
- class sqlmeta:
- table = "visit"
-
- visit_key = StringCol(length=40, alternateID=True,
- alternateMethodName="by_visit_key")
- created = DateTimeCol(default=datetime.now)
- expiry = DateTimeCol()
-
- def lookup_visit(cls, visit_key):
- try:
- return cls.by_visit_key(visit_key)
- except SQLObjectNotFound:
- return None
- lookup_visit = classmethod(lookup_visit)
-
-class VisitIdentity(SQLObject):
- visit_key = StringCol(length=40, alternateID=True,
- alternateMethodName="by_visit_key")
- user_id = IntCol()
-
-
-class Group(SQLObject):
- """
- An ultra-simple group definition.
- """
-
- # names like "Group", "Order" and "User" are reserved words in SQL
- # so we set the name to something safe for SQL
- class sqlmeta:
- table = "tg_group"
-
- group_name = UnicodeCol(length=16, alternateID=True,
- alternateMethodName="by_group_name")
- display_name = UnicodeCol(length=255)
- created = DateTimeCol(default=datetime.now)
-
- # collection of all users belonging to this group
- users = RelatedJoin("User", intermediateTable="user_group",
- joinColumn="group_id", otherColumn="user_id")
-
- # collection of all permissions for this group
- permissions = RelatedJoin("Permission", joinColumn="group_id",
- intermediateTable="group_permission",
- otherColumn="permission_id")
-
-
-class User(SQLObject):
- """
- Reasonably basic User definition. Probably would want additional attributes.
- """
- # names like "Group", "Order" and "User" are reserved words in SQL
- # so we set the name to something safe for SQL
- class sqlmeta:
- table = "tg_user"
-
- child_name = UnicodeCol(length=255)
- user_name = UnicodeCol(length=16, alternateID=True,
- alternateMethodName="by_user_name")
- email_address = UnicodeCol(length=255, alternateID=True,
- alternateMethodName="by_email_address")
- display_name = UnicodeCol(length=255)
- password = UnicodeCol(length=40)
- created = DateTimeCol(default=datetime.now)
-
- # groups this user belongs to
- groups = RelatedJoin("Group", intermediateTable="user_group",
- joinColumn="user_id", otherColumn="group_id")
-
- def _get_permissions(self):
- perms = set()
- for g in self.groups:
- perms = perms | set(g.permissions)
- return perms
-
- def _set_password(self, cleartext_password):
- "Runs cleartext_password through the hash algorithm before saving."
- hash = identity.encrypt_password(cleartext_password)
- self._SO_set_password(hash)
-
- def set_password_raw(self, password):
- "Saves the password as-is to the database."
- self._SO_set_password(password)
-
-
-
-class Permission(SQLObject):
- permission_name = UnicodeCol(length=16, alternateID=True,
- alternateMethodName="by_permission_name")
- description = UnicodeCol(length=255)
-
- groups = RelatedJoin("Group",
- intermediateTable="group_permission",
- joinColumn="permission_id",
- otherColumn="group_id")
-
-def people_map():
- return dict((u.user_name, u.display_name) for u in User.select())