Added logs on csv import

darta 2022-01-17 10:11:47 +01:00
parent 4e736292d1
commit ae1d3d2333
2 changed files with 30 additions and 18 deletions

View File

@ -444,39 +444,48 @@ def check_upload_errors(data):
try: try:
user_groups = [g.strip() for g in u["groups"].split(",")] user_groups = [g.strip() for g in u["groups"].split(",")]
except: except:
return { resp = {
"pass": False, "pass": False,
"msg": "User " + u["username"] + " has invalid groups: " + u["groups"], "msg": "User " + u["username"] + " has invalid groups: " + u["groups"],
} }
log.error(resp)
return resp
if not re.fullmatch(email_regex, u["email"]): if not re.fullmatch(email_regex, u["email"]):
return { resp = {
"pass": False, "pass": False,
"msg": "User " + u["username"] + " has invalid email: " + u["email"], "msg": "User " + u["username"] + " has invalid email: " + u["email"],
} }
log.error(resp)
return resp
if u["role"] not in ["admin", "manager", "teacher", "student"]: if u["role"] not in ["admin", "manager", "teacher", "student"]:
if u["role"] == "": if u["role"] == "":
return { resp = {
"pass": False, "pass": False,
"msg": "User " + u["username"] + " has no role assigned!", "msg": "User " + u["username"] + " has no role assigned!",
} }
return { log.error(resp)
return resp
resp = {
"pass": False, "pass": False,
"msg": "User " + u["username"] + " has invalid role: " + u["role"], "msg": "User " + u["username"] + " has invalid role: " + u["role"],
} }
log.error(resp)
return resp
@app.route("/api/dashboard/<item>", methods=["PUT"]) @app.route("/api/dashboard/<item>", methods=["PUT"])
# @login_required # @login_required
def dashboard_put(item): def dashboard_put(item):
if item == "colours": if item == "colours":
print('colours') print("colours")
try: try:
data = request.get_json(force=True) data = request.get_json(force=True)
dashboard.update_colours(data) dashboard.update_colours(data)
except: except:
log.error(traceback.format_exc()) log.error(traceback.format_exc())
return json.dumps({"colours":data}), 200, {"Content-Type": "application/json"} return json.dumps({"colours": data}), 200, {"Content-Type": "application/json"}
if item == "menu": if item == "menu":
try: try:
data = request.get_json(force=True) data = request.get_json(force=True)
@ -485,10 +494,10 @@ def dashboard_put(item):
log.error(traceback.format_exc()) log.error(traceback.format_exc())
return json.dumps(data), 200, {"Content-Type": "application/json"} return json.dumps(data), 200, {"Content-Type": "application/json"}
if item == "logo": if item == "logo":
dashboard.update_logo(request.files['croppedImage']) dashboard.update_logo(request.files["croppedImage"])
return json.dumps({}), 200, {"Content-Type": "application/json"} return json.dumps({}), 200, {"Content-Type": "application/json"}
if item == "background": if item == "background":
dashboard.update_background(request.files['croppedImage']) dashboard.update_background(request.files["croppedImage"])
return json.dumps({}), 200, {"Content-Type": "application/json"} return json.dumps({}), 200, {"Content-Type": "application/json"}
return ( return (
json.dumps( json.dumps(

View File

@ -4,37 +4,40 @@ import json
from lib.keycloak_client import KeycloakClient from lib.keycloak_client import KeycloakClient
import logging as log import logging as log
class KeycloakConfig: class KeycloakConfig:
def __init__(self): def __init__(self):
self.keycloak = KeycloakClient() self.keycloak = KeycloakClient()
def config_realm_update(self,path_json="/admin/custom/keycloak/realm.json"): def config_realm_update(self, path_json="/admin/custom/keycloak/realm.json"):
self.keycloak.connect() self.keycloak.connect()
k = self.keycloak.keycloak_admin k = self.keycloak.keycloak_admin
with open(path_json) as json_file: with open(path_json) as json_file:
d_update = json.load(json_file) d_update = json.load(json_file)
k.update_realm("master",d_update) k.update_realm("master", d_update)
def config_role_list(self): def config_role_list(self):
self.keycloak.connect() self.keycloak.connect()
k = self.keycloak.keycloak_admin k = self.keycloak.keycloak_admin
name_protocol_mapper = "role list" name_protocol_mapper = "role list"
id_client_scope_role_list = [a["id"] for a in k.get_client_scopes() if a["name"] == "role_list"][0] id_client_scope_role_list = [
a["id"] for a in k.get_client_scopes() if a["name"] == "role_list"
][0]
d = k.get_client_scope(id_client_scope_role_list) d = k.get_client_scope(id_client_scope_role_list)
d_mapper = [a for a in d["protocolMappers"] if a["name"] == name_protocol_mapper][0] d_mapper = [
a for a in d["protocolMappers"] if a["name"] == name_protocol_mapper
][0]
id_mapper = d_mapper["id"] id_mapper = d_mapper["id"]
# Single Role Attribute = On # Single Role Attribute = On
d_mapper['config']['single'] = 'true' d_mapper["config"]["single"] = "true"
k.update_mapper_in_client_scope(id_client_scope_role_list, k.update_mapper_in_client_scope(id_client_scope_role_list, id_mapper, d_mapper)
id_mapper,
d_mapper)
if __name__ == "__main__": if __name__ == "__main__":
keycloack_config = KeycloakConfig() keycloack_config = KeycloakConfig()
keycloack_config.config_realm_update() keycloack_config.config_realm_update()
keycloack_config.config_role_list() keycloack_config.config_role_list()