Created
May 23, 2011 22:24
-
-
Save michilu/987763 to your computer and use it in GitHub Desktop.
kay.ext.gaema.utils.get_gaema_user, discus for http://groups.google.com/group/kay-users-ja/browse_thread/thread/5a842d604c36d7a4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
import pickle | |
from google.appengine.ext import db | |
from kay.ext.gaema.models import GAEMAUser | |
class User(GAEMAUser): | |
name = db.StringProperty() | |
@classmethod | |
def get_or_insert(cls, key_name, user): | |
ds_user = cls.get_by_key_name(user['email']) | |
if not ds_user: | |
user['_service'] = 'goog_hybrid' | |
ds_user = cls.store_user_data(key_name, user) | |
elif ds_user.raw_user_data != user: | |
ds_user.user_data = pickle.dumps(user, pickle.HIGHEST_PROTOCOL) | |
ds_user.put() | |
return ds_user | |
@classmethod | |
def store_user_data(cls, key_name, user): | |
ret = cls(key_name=user['email'], | |
name=user['name'], | |
user_data=pickle.dumps(user, pickle.HIGHEST_PROTOCOL), | |
service=user['_service']) | |
ret.put() | |
return ret |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# -*- coding: utf-8 -*- | |
from kay.ext.gaema.utils import ( | |
create_gaema_login_url, create_gaema_logout_url, get_gaema_user | |
) | |
from kay.ext.gaema.services import GOOG_HYBRID | |
from kay.utils import ( | |
render_to_response, url_for | |
) | |
from main.models import User | |
def index(request): | |
user = get_gaema_user(GOOG_HYBRID) | |
if user is None: | |
gaema_login_url = create_gaema_login_url(GOOG_HYBRID, url_for("main/index")) | |
return render_to_response('main/index.html', vars()) | |
gaema_logout_url = create_gaema_logout_url(GOOG_HYBRID, url_for("main/index")) | |
email = user['email'] | |
user = User.get_or_insert(email, user) | |
return render_to_response('main/login.html', vars()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment