本文整理汇总了Python中query.Query.create_open方法的典型用法代码示例。如果您正苦于以下问题:Python Query.create_open方法的具体用法?Python Query.create_open怎么用?Python Query.create_open使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类query.Query
的用法示例。
在下文中一共展示了Query.create_open方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: handle_query
# 需要导入模块: from query import Query [as 别名]
# 或者: from query.Query import create_open [as 别名]
def handle_query(session, self, query):
response = Query()
self.logger.debug('Handle query:')
self.logger.debug(query.query)
if query.method == 'ACCESS':
token = session.query(Token).filter_by(value=query.params[0]).first()
device = session.query(Device).filter_by(pubkey_device=query.token).first()
if len(query.params) == 1:
if token in device.tokens and token.expiry_date >= helpers.today():
response.create_grant(config.server_token, query.params[0])
self.logger.info('Granted access to token %s at device %s' % (query.params[0], query.token))
else:
response.create_deny(config.server_token, query.params[0])
self.logger.info('Denied access to token %s at device %s' % (query.params[0], query.token))
self.issue_query(query.token, response)
else:
self.logger.debug('Broken query. Expected exactly 1 parameter.')
elif query.method == 'FLASH':
self.logger.info('Requested flash of token %s at device %s' % (query.params[0], query.params[1]))
if len(query.params) == 2:
if query.token in self.connection_manager.webuis:
response.create_flash(config.server_token, query.params[0])
self.issue_query(query.params[1], response)
else:
self.logger.info('Requested flash came from a non webui or an unregistered one. It was discarded.')
else:
self.logger.debug('Broken query. Expected exactly 2 parameters.')
elif query.method == 'FLASHED':
if len(query.params) == 1:
session.query(Token).filter_by(value=query.params[0]).first().flashed = True
self.logger.debug('Token %s was flashed' % query.params[0])
self.logger.debug('Broken query. Expected exactly 1 parameter.')
elif query.method == 'OPEN':
if len(query.params) == 1:
if query.token in self.connection_manager.webuis:
response.create_open(config.server_token)
self.issue_query(query.params[0], response)
self.logger.debug('Sent OPEN to device with token %s.' % query.params[0])
else:
self.logger.info('Requested flash came from a non webui or an unregistered one. It was discarded.')
self.logger.debug('Broken query. Expected exactly 1 parameter.')
示例2: open
# 需要导入模块: from query import Query [as 别名]
# 或者: from query.Query import create_open [as 别名]
def open(sqlsession, id):
id = int(id)
user = sqlsession.query(models.User).filter_by(username=session['username']).first()
device = None
if id == 0:
if user.default_device:
device = user.default_device
else:
id = int(config('default_door_device'))
if id > 0 and not device:
device = sqlsession.query(models.Device).filter_by(id=id).first()
if device:
access_granted = False
if user.level > 9000:
access_granted = True
else:
for token in user.tokens:
if token in device.tokens:
access_granted = True
if not access_granted:
flash('No access on device with id %s' % id, 'danger')
else:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((config.api_host, config.api_port))
temporary_token = helpers.generate_token()
q = Query()
q.create_register_webui(config.webui_token, temporary_token)
s.send(q.to_command())
q.create_open(temporary_token, device.pubkey)
s.send(q.to_command())
q.create_unregister(temporary_token)
s.send(q.to_command())
s.close()
flash('%s has been opened.' % device.name, 'success')
except Exception as e:
flash('Failed to access device %s' % device.name, 'danger')
else:
flash('Could not find device with id %s' % id, 'danger')
return redirect(request.referrer)
示例3: open
# 需要导入模块: from query import Query [as 别名]
# 或者: from query.Query import create_open [as 别名]
def open(self, device):
query = Query()
query.create_open(config.server_token)
self.issue_query(device, query)