--- /dev/null
+from sqlalchemy import *
+from migrate import *
+
+from sqlalchemy.ext.declarative import declarative_base
+TableBase = declarative_base(bind=migrate_engine)
+
+
+class User(TableBase):
+ __tablename__ = 'users'
+ id = Column(Integer, primary_key=True)
+ name = Column(Unicode(length=20), nullable=False)
+
+class OpenID(TableBase):
+ __tablename__ = 'openid'
+ openid = Column(Unicode(length=255), primary_key=True)
+ user_id = Column(Integer, ForeignKey('users.id'))
+
+
+def upgrade():
+ User.__table__.create()
+ OpenID.__table__.create()
+
+def downgrade():
+ OpenID.__table__.drop()
+ User.__table__.drop()
+from pkg_resources import resource_filename
+
from pylons import c, session
from spline.lib.plugin import PluginBase
+from spline.lib.plugin import PluginBase, PluginLink, Priority
import spline.model as model
import spline.model.meta as meta
-import controllers.accounts
-import model as user_model
+import spline.plugins.users.controllers.accounts
+import spline.plugins.users.model
+
+def add_routes_hook(map, *args, **kwargs):
+ """Hook to inject some of our behavior into the routes configuration."""
+ map.connect('/accounts/login_begin', controller='accounts', action='login_begin')
+ map.connect('/accounts/login_finish', controller='accounts', action='login_finish')
def check_userid_hook(action, **params):
"""Hook to see if a user is logged in and, if so, stick a user object in
c.
"""
+ c.user = None
+
if not 'user_id' in session:
return
class UsersPlugin(PluginBase):
def controllers(self):
return dict(
- accounts = controllers.accounts.AccountsController,
+ accounts = spline.plugins.users.controllers.accounts.AccountsController,
)
def model(self):
- return [user_model.User, user_model.OpenID]
+ return [
+ spline.plugins.users.model.User,
+ spline.plugins.users.model.OpenID,
+ ]
+
+ def template_dirs(self):
+ return [
+ (resource_filename(__name__, 'templates'), Priority.NORMAL)
+ ]
def hooks(self):
return [
- ('before_controller', 1, check_userid_hook),
+ ('routes_mapping', Priority.NORMAL, add_routes_hook),
+ ('before_controller', Priority.VERY_FIRST, check_userid_hook),
+ ]
+
+ def widgets(self):
+ return [
+ ('page_header', Priority.NORMAL, 'widgets/user_state.mako'),
]