Optimize slack door open
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
17648a840f
commit
7b6921e44d
@ -1,6 +1,7 @@
|
||||
import os
|
||||
import re
|
||||
import const
|
||||
import threading
|
||||
from datetime import datetime, timedelta
|
||||
from functools import wraps
|
||||
from pymongo import MongoClient
|
||||
@ -61,7 +62,6 @@ def get_group_cards():
|
||||
|
||||
@page_api.route("/api/slack/doorboy", methods=['POST'])
|
||||
def view_slack_doorboy():
|
||||
print(request.data)
|
||||
if request.form.get("token") != const.SLACK_VERIFICATION_TOKEN:
|
||||
return "Invalid token was supplied"
|
||||
if request.form.get("channel_id") not in ("C01CWPF5H8W", "CDL9H8Q9W"):
|
||||
@ -79,7 +79,6 @@ def view_slack_doorboy():
|
||||
return "Invalid command was supplied"
|
||||
|
||||
member = None
|
||||
print(g.users)
|
||||
for user in g.users:
|
||||
if user.slack_id == request.form.get("user_id"):
|
||||
member = user
|
||||
@ -94,6 +93,17 @@ def view_slack_doorboy():
|
||||
if door == "outsidedoors":
|
||||
doors = ["backdoor", "frontdoor", "grounddoor"]
|
||||
|
||||
status = "Permitted" if approved else "Denied"
|
||||
subject = member.display_name
|
||||
|
||||
threading.Thread(target=handle_slack_door_event, args=(doors, approved, member, door, status, subject)).start()
|
||||
|
||||
if approved:
|
||||
return "Opening %s for %s" % (door, subject)
|
||||
else:
|
||||
return "Permission denied"
|
||||
|
||||
def handle_slack_door_event(doors, approved, member, door, status, subject):
|
||||
for d in doors:
|
||||
db.eventlog.insert_one({
|
||||
"method": "slack",
|
||||
@ -107,12 +117,5 @@ def view_slack_doorboy():
|
||||
"timestamp": datetime.utcnow(),
|
||||
})
|
||||
|
||||
status = "Permitted" if approved else "Denied"
|
||||
subject = member.display_name
|
||||
msg = "%s %s door access for %s via Slack bot" % (status, door, subject)
|
||||
slack_post(msg, "doorboy")
|
||||
|
||||
if approved:
|
||||
return "Opening %s for %s" % (door, subject)
|
||||
else:
|
||||
return "Permission denied"
|
||||
|
Loading…
Reference in New Issue
Block a user