Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from google.appengine.ext import db
- from ext import sessions as sess
- from ext import rotmodel as ROT
- class BaseModel(ROT.ROTModel):
- created = db.DateProperty(auto_now_add=True)
- class User(BaseModel):
- username = db.StringProperty(required=True)
- password = db.StringProperty(required=True)
- email = db.StringProperty(required=True)
- firstname = db.StringProperty(required=True)
- lastname = db.StringProperty(required=True)
- expertise = db.StringProperty(required=True)
- session = db.ReferenceProperty(sess._AppEngineUtilities_Session)
- @classmethod
- def login(cls, session, username, password):
- """
- Returns user object on success, None on failure.
- """
- query = User.all().filter("username =", username).filter("password =", password)
- result = query.get()
- if result:
- result.session = session.get_ds_entity()
- result.put()
- session['user_key'] = result.key()
- return result
- @classmethod
- def logout(cls, session):
- """
- Clears user.session and session data.
- Returns nothing.
- """
- if session.has_key('user_key'):
- user = User.get(session['user_key'])
- if user:
- user.session = None
- user.put()
- session.clear()
- @classmethod
- def isAuthentic(cls, session):
- """
- Checks if this computer is logged in, and if the user object is
- set for this session.
- Returns the session instance if successful. None on failure.
- """
- if session.has_key('user_key'):
- user = User.get_by_id(session['user_key'])
- if user and user.session == session.get_ds_entity():
- return session
- session.clear() #If the session key exists, but the user doesn't match, then clear the session.
- return None
Add Comment
Please, Sign In to add comment