Skip to content

Commit

Permalink
Add support for saving default service params values
Browse files Browse the repository at this point in the history
  • Loading branch information
cccs-sgaron committed Aug 26, 2021
1 parent 137d173 commit b6c2e70
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
6 changes: 4 additions & 2 deletions assemblyline_ui/api/v4/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from assemblyline_ui.api.base import api_login, make_api_response, make_subapi_blueprint
from assemblyline_ui.config import CLASSIFICATION, LOGGER, STORAGE, UI_MESSAGING, config
from assemblyline_ui.helper.search import list_all_fields
from assemblyline_ui.helper.service import ui_to_submission_params
from assemblyline_ui.helper.service import simplify_service_spec, ui_to_submission_params
from assemblyline_ui.helper.user import (get_dynamic_classification, load_user_settings, save_user_account,
save_user_settings)
from assemblyline_ui.http_exceptions import AccessDeniedException, InvalidDataException
Expand Down Expand Up @@ -723,7 +723,9 @@ def set_user_settings(username, **_):
}
"""
try:
if save_user_settings(username, request.json):
data = request.json
data['service_spec'] = simplify_service_spec(data.get('service_spec', {}))
if save_user_settings(username, data):
return make_api_response({"success": True})
else:
return make_api_response({"success": False}, "Failed to save user's settings", 500)
Expand Down
19 changes: 14 additions & 5 deletions assemblyline_ui/helper/service.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@

from copy import copy
from assemblyline_ui.config import config, SERVICE_LIST
from assemblyline.odm.models.submission import DEFAULT_SRV_SEL


def get_default_service_spec(srv_list=None):
def get_default_service_spec(srv_list=None, user_default_values={}):
if not srv_list:
srv_list = SERVICE_LIST

return [{"name": x['name'],
"params": x["submission_params"]}
for x in srv_list if x["submission_params"]]
out = []
for x in srv_list:
if x["submission_params"]:
param_object = {'name': x['name'], "params": []}
for param in x.get('submission_params'):
new_param = copy(param)
new_param['value'] = user_default_values.get(x['name'], {}).get(param['name'], param['value'])
param_object["params"].append(new_param)

out.append(param_object)

return out


def get_default_service_list(srv_list=None, default_selection=None):
Expand Down
3 changes: 1 addition & 2 deletions assemblyline_ui/helper/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ def load_user_settings(user):

def_srv_list = settings.get('services', {}).get('selected', None)

settings['service_spec'] = get_default_service_spec(srv_list)
settings['service_spec'] = get_default_service_spec(srv_list, settings.get('service_spec', {}))
settings['services'] = get_default_service_list(srv_list, def_srv_list)

# Normalize the user's classification
Expand All @@ -157,7 +157,6 @@ def load_user_settings(user):


def save_user_settings(username, data):
data["service_spec"] = {}
data["services"] = {'selected': simplify_services(data["services"])}

return STORAGE.user_settings.save(username, data)

0 comments on commit b6c2e70

Please sign in to comment.