本文整理汇总了Python中web.models.models.User.put方法的典型用法代码示例。如果您正苦于以下问题:Python User.put方法的具体用法?Python User.put怎么用?Python User.put使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类web.models.models.User
的用法示例。
在下文中一共展示了User.put方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get
# 需要导入模块: from web.models.models import User [as 别名]
# 或者: from web.models.models.User import put [as 别名]
def get(self):
# get info from Google login
current_user = users.get_current_user()
# handle old and new users
try:
uid = current_user.user_id()
# see if user is in database
user_info = User.get_by_uid(uid)
# get the destination URL from the next parameter
next = self.request.get('next')
# create association if user doesn't exist
if user_info is None:
username = current_user.email().split("@")[0]
email = current_user.email()
# create entry in db
user_info = User(
last_login = datetime.now(),
uid = str(uid),
username = username,
email = email,
activated = True
)
# try to create unique username
while True:
user_info.unique_properties = ['username']
uniques = ['User.username:%s' % user_info.username]
success, existing = Unique.create_multi(uniques)
# if we already have that username, create a new one and try again
if existing:
user_info.username = "%s%s" % (username, random.randrange(100))
else:
break
# write out the user
user_info.put()
# wait a few seconds for database server to update
time.sleep(1)
log_message = "new user registered"
# slack the new user signup
if config.debug:
in_dev = " (in development)"
else:
in_dev = ""
slack_data = {
'text': "Woot! New user %s just signed up%s!" % (user_info.username, in_dev),
'username': "VP of Cloud",
'icon_emoji': ":cloud:"
}
h = httplib2.Http()
resp, content = h.request(config.slack_webhook,
'POST',
json.dumps(slack_data),
headers={'Content-Type': 'application/json'})
else:
# existing user logging in - force a2fa check before continuing
now_minus_an_hour = datetime.now() + timedelta(0, -config.session_age)
if user_info.tfenabled and (user_info.last_login < now_minus_an_hour):
return self.redirect_to('login-tfa', next=next)
else:
# two factor is disabled, or already complete
user_info.last_login = datetime.now()
user_info.put()
log_message = "user login"
# set the user's session
self.auth.set_session(self.auth.store.user_to_dict(user_info), remember=True)
# log visit
log = LogVisit(
user = user_info.key,
message = log_message,
uastring = self.request.user_agent,
ip = self.request.remote_addr
)
log.put()
message = "You have successfully logged in!"
self.add_message(message, 'success')
# take user to whatever page was originally requested, or status if none
if next:
return self.redirect(str(next))
else:
return self.redirect_to('account-status')
except Exception as ex:
message = "No user authentication information received from Google: %s" % ex
self.add_message(message, 'error')
return self.redirect_to('home')