当前位置: 首页>>代码示例>>Python>>正文


Python User.get_by_uid方法代码示例

本文整理汇总了Python中web.models.models.User.get_by_uid方法的典型用法代码示例。如果您正苦于以下问题:Python User.get_by_uid方法的具体用法?Python User.get_by_uid怎么用?Python User.get_by_uid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在web.models.models.User的用法示例。


在下文中一共展示了User.get_by_uid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: post

# 需要导入模块: from web.models.models import User [as 别名]
# 或者: from web.models.models.User import get_by_uid [as 别名]
	def post(self):
		# user information from google login
		current_user = users.get_current_user()
		uid = current_user.user_id()
		user_info = User.get_by_uid(uid)
		
		# pull in tfa info
		authcode = self.request.get('authcode')
		secret = user_info.tfsecret
		totp = pyotp.TOTP(secret)

		# get the destination URL from the next parameter
		next = self.request.get('next')

		# check if token verifies
		if totp.verify(authcode):
			# user has completed tfa - update login time
			user_info.last_login = datetime.now()
			user_info.put()
			time.sleep(2)
			return self.redirect_to('login-complete', next=next)

		# did not 2fa - force them back through login
		self.redirect_to('login', next=next)
开发者ID:StackMonkey,项目名称:site,代码行数:26,代码来源:userhandlers.py

示例2: get

# 需要导入模块: from web.models.models import User [as 别名]
# 或者: from web.models.models.User import get_by_uid [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')
开发者ID:StackMonkey,项目名称:site,代码行数:102,代码来源:userhandlers.py


注:本文中的web.models.models.User.get_by_uid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。