Feat: Blog new article.

This commit is contained in:
2025-08-18 15:57:22 +01:00
parent f434281f6a
commit e370e3a709
34 changed files with 2212 additions and 552 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -25,6 +25,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_dog_command_link (
, IN a_hand_signal_descriptions_link TEXT
, IN a_notes_command TEXT
, IN a_notes_link TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_require_all_id_search_filters_met BIT
, IN a_require_any_id_search_filters_met BIT
, IN a_require_all_non_id_search_filters_met BIT
@@ -35,6 +40,7 @@ BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_code_type_error_no_permission VARCHAR(100);
DECLARE v_code_type_error_warning VARCHAR(100);
DECLARE v_guid BINARY(36);
DECLARE v_has_filter_command_category_id BIT;
DECLARE v_has_filter_command_category_name BIT;
DECLARE v_has_filter_command_id BIT;
@@ -46,13 +52,15 @@ BEGIN
DECLARE v_has_filter_link_id BIT;
DECLARE v_has_filter_link_notes BIT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_permission_command_view INT;
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_id_type_error_warning INT;
DECLARE v_has_filter_dog BIT;
DECLARE v_guid BINARY(36);
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_minimum INT;
DECLARE v_ids_permission_required VARCHAR(200);
DECLARE v_is_super_user BIT;
DECLARE v_priority_access_level_none INT;
DECLARE v_priority_access_level_view INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE v_can_view BIT;
@@ -111,9 +119,17 @@ BEGIN
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_type_error_warning := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_warning LIMIT 1);
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
SET v_ids_permission_required := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
SET v_ids_permission_required := (SELECT CONCAT(
CONVERT(v_ids_permission_required, CHAR)
, ','
, CONVERT(v_id_permission_command_view, CHAR)
));
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
SET a_id_user := IFNULL(a_id_user, 0);
SET a_get_all_link := IFNULL(a_get_all_link, 0);
SET a_get_inactive_link := IFNULL(a_get_inactive_link, 0);
@@ -180,7 +196,9 @@ BEGIN
, v_id_type_error_no_permission
, v_id_type_error_warning
, v_guid
, v_id_permission_dog_view
, v_id_permission_command_view
, v_ids_permission_required
, v_ids_permission_required
, v_time_start
;
@@ -295,7 +313,7 @@ BEGIN
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_ids_permission_required -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
@@ -314,7 +332,7 @@ BEGIN
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_ids_permission_required -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
@@ -367,6 +385,11 @@ BEGIN
, a_get_inactive_dog -- a_get_inactive_dog
, a_ids_dog -- a_ids_dog
, a_names_dog -- a_names_dog
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -383,6 +406,11 @@ BEGIN
, a_get_inactive_dog -- a_get_inactive_dog
, a_ids_dog -- a_ids_dog
, a_names_dog -- a_names_dog
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -437,6 +465,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -459,6 +492,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -882,6 +920,11 @@ CALL fetchmetrics.p_dog_get_many_dog_command_link (
, 'pat' -- a_hand_signal_descriptions_link
, 'pat' -- a_notes_command
, 'pat' -- a_notes_link
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
@@ -909,6 +952,11 @@ CALL fetchmetrics.p_dog_get_many_dog_command_link (
, '' -- a_hand_signal_descriptions_link
, '' -- a_notes_command
, '' -- a_notes_link
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
@@ -936,6 +984,11 @@ CALL fetchmetrics.p_dog_get_many_dog_command_link (
, 'pat,point' -- a_hand_signal_descriptions_link
, 'pat,point' -- a_notes_command
, 'pat,point' -- a_notes_link
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met

View File

@@ -15,6 +15,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_button_icon (
, IN a_get_inactive_image BIT
, IN a_ids_image TEXT
, IN a_names_image TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_get_all_button_icon BIT
, IN a_get_inactive_button_icon BIT
, IN a_ids_button_icon TEXT
@@ -136,6 +141,11 @@ BEGIN
, a_get_inactive_image
, a_ids_image
, a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon
, a_get_inactive_button_icon
, a_ids_button_icon
@@ -230,6 +240,11 @@ BEGIN
, a_get_inactive_image -- a_get_inactive_image
, a_ids_image -- a_ids_image
, a_names_image -- a_names_image
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -254,6 +269,11 @@ BEGIN
, a_get_inactive_image -- a_get_inactive_image
, a_ids_image -- a_ids_image
, a_names_image -- a_names_image
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -923,6 +943,11 @@ CALL fetchmetrics.p_dog_calc_button_icon (
, 0 -- a_get_inactive_image
, '' -- a_ids_image
, '' -- a_names_image
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_get_all_button_icon
, 0 -- a_get_inactive_button_icon
, '' -- a_ids_button_icon
@@ -947,6 +972,11 @@ CALL fetchmetrics.p_dog_calc_button_icon (
, 0 -- a_get_inactive_image
, '' -- a_ids_image
, 'pat,point' -- a_names_image
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, 'pat,point' -- a_names_user
, 'pat,point' -- a_emails_user
, 1 -- a_get_all_button_icon
, 0 -- a_get_inactive_button_icon
, '' -- a_ids_button_icon

View File

@@ -14,6 +14,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_button_icon (
, IN a_get_inactive_image BIT
, IN a_ids_image TEXT
, IN a_names_image TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_get_all_button_icon BIT
, IN a_get_inactive_button_icon BIT
, IN a_ids_button_icon TEXT
@@ -94,25 +99,6 @@ BEGIN
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
SET a_id_user := IFNULL(a_id_user, 0);
/*
SET a_get_all_file_type := IFNULL(a_get_all_file_type, 0);
SET a_get_inactive_file_type := IFNULL(a_get_inactive_file_type, 0);
SET a_ids_file_type := TRIM(IFNULL(a_ids_file_type, ''));
SET a_names_file_type := TRIM(IFNULL(a_names_file_type, ''));
SET a_get_all_image := IFNULL(a_get_all_image, 0);
SET a_get_inactive_image := IFNULL(a_get_inactive_image, 0);
SET a_ids_image := TRIM(IFNULL(a_ids_image, ''));
SET a_names_image := TRIM(IFNULL(a_names_image, ''));
SET a_get_all_button_icon := IFNULL(a_get_all_button_icon, 0);
SET a_get_inactive_button_icon := IFNULL(a_get_inactive_button_icon, 0);
SET a_ids_button_icon := TRIM(IFNULL(a_ids_button_icon, ''));
SET a_names_button_icon := TRIM(IFNULL(a_names_button_icon, ''));
SET a_notes_button_icon := TRIM(IFNULL(a_notes_button_icon, ''));
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
*/
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
@@ -126,6 +112,11 @@ BEGIN
, a_get_inactive_image
, a_ids_image
, a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon
, a_get_inactive_button_icon
, a_ids_button_icon
@@ -168,83 +159,6 @@ BEGIN
, code VARCHAR(250) NOT NULL
, msg TEXT NOT NULL
);
-- Permissions
IF a_debug = 1 THEN
SELECT
v_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
v_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
SELECT * FROM tmp_Msg_Error t_ERROR;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Button_Icons.'
)
;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access(
v_guid
, 0 -- a_debug
);
-- Call Button_Icon Calc
@@ -261,6 +175,11 @@ BEGIN
, a_get_inactive_image -- a_get_inactive_image
, a_ids_image -- a_ids_image
, a_names_image -- a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon -- a_get_all_button_icon
, a_get_inactive_button_icon -- a_get_inactive_button_icon
, a_ids_button_icon -- a_ids_button_icon
@@ -286,6 +205,11 @@ BEGIN
, a_get_inactive_image -- a_get_inactive_image
, a_ids_image -- a_ids_image
, a_names_image -- a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon -- a_get_all_button_icon
, a_get_inactive_button_icon -- a_get_inactive_button_icon
, a_ids_button_icon -- a_ids_button_icon
@@ -410,6 +334,11 @@ CALL fetchmetrics.p_dog_get_many_button_icon (
, 0 -- a_get_inactive_image
, '' -- a_ids_image
, '' -- a_names_image
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_get_all_button_icon
, 0 -- a_get_inactive_button_icon
, '' -- a_ids_button_icon
@@ -433,6 +362,11 @@ CALL fetchmetrics.p_dog_get_many_button_icon (
, 0 -- a_get_inactive_image
, '' -- a_ids_image
, 'pat,point' -- a_names_image
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, 'pat,point' -- a_names_user
, 'pat,point' -- a_emails_user
, 1 -- a_get_all_button_icon
, 0 -- a_get_inactive_button_icon
, '' -- a_ids_button_icon

View File

@@ -45,6 +45,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_command_button_link (
, IN a_get_inactive_location BIT
, IN a_ids_location TEXT
, IN a_names_location TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_require_all_id_search_filters_met BIT
, IN a_require_any_id_search_filters_met BIT
, IN a_require_all_non_id_search_filters_met BIT
@@ -55,29 +60,7 @@ BEGIN
DECLARE v_code_type_error_bad_data VARCHAR(100);
DECLARE v_code_type_error_no_permission VARCHAR(100);
DECLARE v_code_type_error_warning VARCHAR(100);
/*
DECLARE v_has_filter_button_icon_id BIT;
DECLARE v_has_filter_button_icon_name BIT;
DECLARE v_has_filter_button_icon_notes BIT;
DECLARE v_has_filter_button_shape_id BIT;
DECLARE v_has_filter_button_shape_name BIT;
DECLARE v_has_filter_button_shape_notes BIT;
DECLARE v_has_filter_colour_id BIT;
DECLARE v_has_filter_colour_name BIT;
DECLARE v_has_filter_command_category_id BIT;
DECLARE v_has_filter_command_category_name BIT;
DECLARE v_has_filter_command_id BIT;
DECLARE v_has_filter_command_name BIT;
DECLARE v_has_filter_command_hand_signal_default_description BIT;
DECLARE v_has_filter_command_notes BIT;
DECLARE v_has_filter_file_type_id BIT;
DECLARE v_has_filter_file_type_name BIT;
DECLARE v_has_filter_image_id BIT;
DECLARE v_has_filter_image_name BIT;
*/
DECLARE v_has_filter_link_id BIT;
-- DECLARE v_has_filter_location_id BIT;
-- DECLARE v_has_filter_location_name BIT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
@@ -158,26 +141,6 @@ BEGIN
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
SET a_debug := IFNULL(a_debug, 0);
/*
SET v_has_filter_command_category_id = CASE WHEN a_ids_command_category <> '' THEN 1 ELSE 0 END;
SET v_has_filter_command_category_name = CASE WHEN a_names_command_category <> '' THEN 1 ELSE 0 END;
SET v_has_filter_command_id = CASE WHEN a_ids_command <> '' THEN 1 ELSE 0 END;
SET v_has_filter_command_name = CASE WHEN a_names_command <> '' THEN 1 ELSE 0 END;
SET v_has_filter_command_hand_signal_default_description = CASE WHEN a_hand_signal_default_descriptions_command <> '' THEN 1 ELSE 0 END;
SET v_has_filter_command_notes = CASE WHEN a_notes_command <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_shape_id = CASE WHEN a_ids_button_shape <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_shape_name = CASE WHEN a_names_button_shape <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_shape_notes = CASE WHEN a_notes_button_shape <> '' THEN 1 ELSE 0 END;
SET v_has_filter_colour_id = CASE WHEN a_ids_colour <> '' THEN 1 ELSE 0 END;
SET v_has_filter_colour_name = CASE WHEN a_names_colour <> '' THEN 1 ELSE 0 END;
SET v_has_filter_file_type_id = CASE WHEN a_ids_file_type <> '' THEN 1 ELSE 0 END;
SET v_has_filter_file_type_name = CASE WHEN a_names_file_type <> '' THEN 1 ELSE 0 END;
SET v_has_filter_image_id = CASE WHEN a_ids_image <> '' THEN 1 ELSE 0 END;
SET v_has_filter_image_name = CASE WHEN a_names_image <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_icon_id = CASE WHEN a_ids_button_icon <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_icon_name = CASE WHEN a_names_button_icon <> '' THEN 1 ELSE 0 END;
SET v_has_filter_button_icon_notes = CASE WHEN a_notes_button_icon <> '' THEN 1 ELSE 0 END;
*/
SET v_has_filter_link_id = CASE WHEN a_ids_link <> '' THEN 1 ELSE 0 END;
IF a_debug = 1 THEN
@@ -238,26 +201,6 @@ BEGIN
SELECT
v_has_filter_link_id
/*
, v_has_filter_command_category_id
, v_has_filter_command_category_name
, v_has_filter_command_id
, v_has_filter_command_name
, v_has_filter_command_hand_signal_default_description
, v_has_filter_command_notes
, v_has_filter_button_shape_id
, v_has_filter_button_shape_name
, v_has_filter_button_shape_notes
, v_has_filter_colour_id
, v_has_filter_colour_name
, v_has_filter_file_type_id
, v_has_filter_file_type_name
, v_has_filter_image_id
, v_has_filter_image_name
, v_has_filter_button_icon_id
, v_has_filter_button_icon_name
, v_has_filter_button_icon_notes
*/
;
END IF;
@@ -460,6 +403,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -482,6 +430,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -555,6 +508,11 @@ BEGIN
, a_ids_button_shape -- a_ids_button_shape
, a_names_button_shape -- a_names_button_shape
, a_notes_button_shape -- a_notes_button_shape
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -572,6 +530,11 @@ BEGIN
, a_ids_button_shape -- a_ids_button_shape
, a_names_button_shape -- a_names_button_shape
, a_notes_button_shape -- a_notes_button_shape
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -682,6 +645,11 @@ BEGIN
, a_get_inactive_image
, a_ids_image
, a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon -- a_get_all_button_icon
, a_get_inactive_button_icon -- a_get_inactive_button_icon
, a_ids_button_icon -- a_ids_button_icon
@@ -707,6 +675,11 @@ BEGIN
, a_get_inactive_image
, a_ids_image
, a_names_image
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_get_all_button_icon -- a_get_all_button_icon
, a_get_inactive_button_icon -- a_get_inactive_button_icon
, a_ids_button_icon -- a_ids_button_icon
@@ -765,6 +738,11 @@ BEGIN
, a_get_inactive_location -- a_get_inactive_location
, a_ids_location -- a_ids_location
, a_names_location -- a_names_location
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -781,6 +759,11 @@ BEGIN
, a_get_inactive_location -- a_get_inactive_location
, a_ids_location -- a_ids_location
, a_names_location -- a_names_location
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -1150,6 +1133,11 @@ CALL fetchmetrics.p_dog_get_many_command_button_link (
, 0 -- a_get_inactive_location
, '' -- a_ids_location
, '' -- a_names_location
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
@@ -1198,6 +1186,11 @@ CALL fetchmetrics.p_dog_get_many_command_button_link (
, 0 -- a_get_inactive_location
, '' -- a_ids_location
, 'pat,point' -- a_names_location
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, 'pat,point' -- a_names_user
, 'pat,point' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met

View File

@@ -389,6 +389,11 @@ BEGIN
, a_get_inactive_location -- a_get_inactive_location
, a_ids_location -- a_ids_location
, a_names_location -- a_names_location
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -405,6 +410,11 @@ BEGIN
, a_get_inactive_location -- a_get_inactive_location
, a_ids_location -- a_ids_location
, a_names_location -- a_names_location
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met

View File

@@ -480,6 +480,11 @@ BEGIN
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
, a_ids_distraction_type -- a_ids_distraction_type
, a_names_distraction_type -- a_names_distraction_type
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -496,6 +501,11 @@ BEGIN
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
, a_ids_distraction_type -- a_ids_distraction_type
, a_names_distraction_type -- a_names_distraction_type
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -540,6 +550,11 @@ BEGIN
, a_get_inactive_intensity_level_emotional -- a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional -- a_ids_intensity_level_emotional
, a_names_intensity_level_emotional -- a_names_intensity_level_emotional
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -556,6 +571,11 @@ BEGIN
, a_get_inactive_intensity_level_emotional -- a_get_inactive_intensity_level_emotional
, a_ids_intensity_level_emotional -- a_ids_intensity_level_emotional
, a_names_intensity_level_emotional -- a_names_intensity_level_emotional
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -605,6 +625,11 @@ BEGIN
, a_get_inactive_intensity_level_scent -- a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent -- a_ids_intensity_level_scent
, a_names_intensity_level_scent -- a_names_intensity_level_scent
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -621,6 +646,11 @@ BEGIN
, a_get_inactive_intensity_level_scent -- a_get_inactive_intensity_level_scent
, a_ids_intensity_level_scent -- a_ids_intensity_level_scent
, a_names_intensity_level_scent -- a_names_intensity_level_scent
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -670,6 +700,11 @@ BEGIN
, a_get_inactive_intensity_level_sight -- a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight -- a_ids_intensity_level_sight
, a_names_intensity_level_sight -- a_names_intensity_level_sight
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -686,6 +721,11 @@ BEGIN
, a_get_inactive_intensity_level_sight -- a_get_inactive_intensity_level_sight
, a_ids_intensity_level_sight -- a_ids_intensity_level_sight
, a_names_intensity_level_sight -- a_names_intensity_level_sight
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -735,6 +775,11 @@ BEGIN
, a_get_inactive_intensity_level_sound -- a_get_inactive_intensity_level_sound
, a_ids_intensity_level_sound -- a_ids_intensity_level_sound
, a_names_intensity_level_sound -- a_names_intensity_level_sound
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -751,6 +796,11 @@ BEGIN
, a_get_inactive_intensity_level_sound -- a_get_inactive_intensity_level_sound
, a_ids_intensity_level_sound -- a_ids_intensity_level_sound
, a_names_intensity_level_sound -- a_names_intensity_level_sound
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -800,6 +850,11 @@ BEGIN
, a_get_inactive_intensity_level_touch -- a_get_inactive_intensity_level_touch
, a_ids_intensity_level_touch -- a_ids_intensity_level_touch
, a_names_intensity_level_touch -- a_names_intensity_level_touch
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -816,6 +871,11 @@ BEGIN
, a_get_inactive_intensity_level_touch -- a_get_inactive_intensity_level_touch
, a_ids_intensity_level_touch -- a_ids_intensity_level_touch
, a_names_intensity_level_touch -- a_names_intensity_level_touch
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -1502,7 +1562,7 @@ DELIMITER ;
/*
CALL fetchmetrics.p_dog_calc_distraction (
'slippery ' -- a_guid
'slobbery ' -- a_guid
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_distraction
, 0 -- a_get_inactive_distraction
@@ -1580,7 +1640,7 @@ FROM fetchmetrics.DOG_Distraction_Temp
;
CALL fetchmetrics.p_dog_clear_calc_distraction (
'slippery ' -- a_guid
'slobbery ' -- a_guid
, 1 -- debug
);

View File

@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_bribe (
, IN a_get_inactive_bribe BIT
, IN a_ids_bribe TEXT
, IN a_names_bribe TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_require_all_id_search_filters_met BIT
, IN a_require_any_id_search_filters_met BIT
, IN a_require_all_non_id_search_filters_met BIT
@@ -26,9 +31,12 @@ BEGIN
DECLARE v_has_filter_bribe_name BIT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_minimum INT;
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_permission_command_view INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_is_super_user BIT;
DECLARE v_priority_access_level_none INT;
DECLARE v_priority_access_level_view INT;
DECLARE v_time_start TIMESTAMP(6);
DECLARE exit handler for SQLEXCEPTION
@@ -83,9 +91,11 @@ BEGIN
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
CALL fetchmetrics.p_core_validate_guid ( a_guid );
@@ -109,6 +119,11 @@ BEGIN
, a_get_inactive_bribe
, a_ids_bribe
, a_names_bribe
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met
@@ -120,7 +135,7 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_id_type_error_no_permission
, v_id_permission_dog_view
, v_id_permission_command_view
, v_time_start
;
END IF;
@@ -129,9 +144,30 @@ BEGIN
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Bribe_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Bribe;
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Bribe (
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
, id_user INT
, id_role INT
, id_permission_required INT NOT NULL
, priority_access_level_required INT NOT NULL
, is_super_user BIT
, priority_access_level_user INT
, has_access BIT
, can_view BIT
, can_edit BIT
, can_admin BIT
, active BIT
, does_meet_id_filters BIT
, does_meet_non_id_filters BIT
);
CREATE TEMPORARY TABLE tmp_Bribe_Calc_Bribe (
id_bribe INT NOT NULL
, exists_valid_link BIT NOT NULL
, id_user INT
, does_meet_id_filters BIT NOT NULL
, does_meet_non_id_filters BIT NOT NULL
);
@@ -158,6 +194,171 @@ BEGIN
SET v_has_filter_bribe_id = CASE WHEN a_ids_bribe <> '' THEN 1 ELSE 0 END;
SET v_has_filter_bribe_name = CASE WHEN a_names_bribe <> '' THEN 1 ELSE 0 END;
-- Permissions
IF a_debug = 1 THEN
SELECT
a_guid -- a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
a_guid -- a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
, IFNULL(CALC_USER_T.is_super_user, 0)
INTO
v_can_view
, v_is_super_user
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
WHERE CALC_USER_T.guid = a_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT
v_can_view
, v_is_super_user
;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error_Calc_Bribe t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error_Calc_Bribe (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Dogs and Bribes.'
)
;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access(
a_guid
, 0 -- a_debug
);
-- Users
IF a_debug = 1 THEN
SELECT
a_guid -- guid
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, '' -- a_auth0_ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
a_guid-- guid
, a_get_all_user -- get_all_user
, a_get_inactive_user -- get_inactive_user
, a_ids_user -- ids_user
, '' -- a_auth0_ids_user
, a_names_user -- a_names_user
, a_emails_user -- a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_command_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
INSERT INTO tmp_Calc_User_Access_Calc_Bribe (
id_user
, id_role
, id_permission_required
, priority_access_level_required
, is_super_user
, priority_access_level_user
, has_access
, can_view
, can_edit
, can_admin
, active
, does_meet_id_filters
, does_meet_non_id_filters
)
SELECT
CALC_USER_T.id_user
, CALC_USER_T.id_role
, CALC_USER_T.id_permission_required
, CALC_USER_T.priority_access_level_required
, CALC_USER_T.is_super_user
, CALC_USER_T.priority_access_level_user
, CALC_USER_T.has_access
, CALC_USER_T.can_view
, CALC_USER_T.can_edit
, CALC_USER_T.can_admin
, CALC_USER_T.active
, CALC_USER_T.does_meet_id_filters
, CALC_USER_T.does_meet_non_id_filters
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = a_guid
;
IF a_debug = 1 THEN
SELECT 'After get many user';
SELECT * FROM tmp_Calc_User_Access_Calc_Bribe;
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Bribe t_ERROR;
SELECT * FROM tmp_Msg_Error_Calc_Bribe t_ERROR;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access(
a_guid
, 0 -- a_debug
);
-- Bribes
IF v_has_filter_bribe_id = 1 THEN
CALL fetchmetrics.p_core_split(a_guid, a_ids_bribe, ',', a_debug);
@@ -205,12 +406,12 @@ BEGIN
IF EXISTS (
SELECT *
FROM tmp_Split_Id_Calc_Bribe t_SPLIT_ID
LEFT JOIN fetchmetrics.DOG_Bribe BRIBES ON t_SPLIT_ID.as_int = BRIBES.id_bribe
LEFT JOIN fetchmetrics.DOG_Bribe BRIBE ON t_SPLIT_ID.as_int = BRIBE.id_bribe
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(BRIBES.id_bribe)
OR ISNULL(BRIBE.id_bribe)
OR (
BRIBES.active = 0
BRIBE.active = 0
AND a_get_inactive_bribe = 0
)
) THEN
@@ -224,12 +425,12 @@ BEGIN
, v_code_type_error_bad_data
, CONCAT('Invalid or inactive Bribe IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
FROM tmp_Split_Id_Calc_Bribe t_SPLIT_ID
LEFT JOIN fetchmetrics.DOG_Bribe BRIBES ON t_SPLIT_ID.as_int = BRIBES.id_bribe
LEFT JOIN fetchmetrics.DOG_Bribe BRIBE ON t_SPLIT_ID.as_int = BRIBE.id_bribe
WHERE
ISNULL(t_SPLIT_ID.as_int)
OR ISNULL(BRIBES.id_bribe)
OR ISNULL(BRIBE.id_bribe)
OR (
BRIBES.active = 0
BRIBE.active = 0
AND a_get_inactive_bribe = 0
)
;
@@ -239,70 +440,122 @@ BEGIN
ELSE
INSERT INTO tmp_Bribe_Calc_Bribe (
id_bribe
, exists_valid_link
, id_user
, does_meet_id_filters
, does_meet_non_id_filters
)
WITH
Bribe_Id_Filter AS (
SELECT BRIBES.id_bribe
SELECT BRIBE.id_bribe
FROM tmp_Split_Id_Calc_Bribe t_SPLIT_ID
INNER JOIN fetchmetrics.DOG_Bribe BRIBES ON t_SPLIT_ID.as_int = BRIBES.id_bribe
INNER JOIN fetchmetrics.DOG_Bribe BRIBE ON t_SPLIT_ID.as_int = BRIBE.id_bribe
)
, Bribe_Name_Filter AS (
SELECT BRIBES.id_bribe
SELECT BRIBE.id_bribe
FROM tmp_Split_Name_Calc_Bribe t_SPLIT_NAME
INNER JOIN fetchmetrics.DOG_Bribe BRIBES ON BRIBES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
INNER JOIN fetchmetrics.DOG_Bribe BRIBE ON BRIBE.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
)
, Bribe_Filters AS (
SELECT
BRIBES_COMBINED.id_bribe
, MAX(BRIBES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
, MAX(BRIBES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
BRIBE_COMBINED.id_bribe
, MAX(BRIBE_COMBINED.does_meet_id_filter) AS does_meet_id_filter
, MAX(BRIBE_COMBINED.does_meet_name_filter) AS does_meet_name_filter
FROM (
SELECT
BRIBES_ID_FILTER.id_bribe
BRIBE_ID_FILTER.id_bribe
, 1 AS does_meet_id_filter
, 0 AS does_meet_name_filter
FROM Bribe_Id_Filter BRIBES_ID_FILTER
FROM Bribe_Id_Filter BRIBE_ID_FILTER
UNION
SELECT
BRIBES_NAME_FILTER.id_bribe
BRIBE_NAME_FILTER.id_bribe
, 0 AS does_meet_id_filter
, 1 AS does_meet_name_filter
FROM Bribe_Name_Filter BRIBES_NAME_FILTER
) BRIBES_COMBINED
GROUP BY BRIBES_COMBINED.id_bribe
FROM Bribe_Name_Filter BRIBE_NAME_FILTER
) BRIBE_COMBINED
GROUP BY BRIBE_COMBINED.id_bribe
)
, Bribe_Access AS (
SELECT
BRIBE.id_bribe
, CASE WHEN
v_is_super_user = 1
OR (
t_USER.id_user IS NOT NULL
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
)
THEN 1 ELSE 0 END AS exists_valid_link
, ROW_NUMBER() OVER (
PARTITION BY BRIBE.id_bribe
ORDER BY
CASE WHEN
v_is_super_user = 1
OR (
t_USER.id_user IS NOT NULL
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
)
THEN 1 ELSE 0 END DESC
, t_USER.does_meet_id_filters DESC
, t_USER.does_meet_non_id_filters DESC
) AS index_link_in_bribe
, t_USER.id_user
FROM fetchmetrics.DOG_Bribe BRIBE
LEFT JOIN fetchmetrics.DOG_Bribe_User_Link BRIBE_USER_LINK
ON BRIBE.id_bribe = BRIBE_USER_LINK.id_bribe
AND (
(
a_get_inactive_bribe = 1
AND a_get_inactive_user = 1
)
OR BRIBE_USER_LINK.active = 1
)
LEFT JOIN tmp_Calc_User_Access_Calc_Bribe t_USER
ON BRIBE_USER_LINK.id_user = t_USER.id_user
AND (
a_get_inactive_user = 1
OR t_USER.active = 1
)
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
ON BRIBE_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
AND ACCESS_LEVEL.active = 1
)
SELECT
BRIBES.id_bribe
BRIBE.id_bribe
, IFNULL(BRIBE_ACCESS.exists_valid_link, 0) AS exists_valid_link
, BRIBE_ACCESS.id_user
, CASE WHEN
v_has_filter_bribe_id = 0
OR IFNULL(BRIBES_FILTERS.does_meet_id_filter, 0) = 1
OR IFNULL(BRIBE_FILTERS.does_meet_id_filter, 0) = 1
THEN 1 ELSE 0 END AS does_meet_id_filters
, CASE WHEN
(
v_has_filter_bribe_name = 0
)
OR IFNULL(BRIBES_FILTERS.does_meet_name_filter, 0) = 1
OR IFNULL(BRIBE_FILTERS.does_meet_name_filter, 0) = 1
THEN 1 ELSE 0 END AS does_meet_non_id_filters
FROM fetchmetrics.DOG_Bribe BRIBES
LEFT JOIN Bribe_Filters BRIBES_FILTERS ON BRIBES.id_bribe = BRIBES_FILTERS.id_bribe
FROM fetchmetrics.DOG_Bribe BRIBE
LEFT JOIN Bribe_Filters BRIBE_FILTERS ON BRIBE.id_bribe = BRIBE_FILTERS.id_bribe
LEFT JOIN Bribe_Access BRIBE_ACCESS
ON BRIBE.id_bribe = BRIBE_ACCESS.id_bribe
AND BRIBE_ACCESS.index_link_in_bribe = 1
WHERE
(
a_get_all_bribe = 1
OR (
v_has_filter_bribe_id = 1
AND BRIBES_FILTERS.does_meet_id_filter = 1
AND BRIBE_FILTERS.does_meet_id_filter = 1
)
OR (
v_has_filter_bribe_name = 1
AND BRIBES_FILTERS.does_meet_name_filter = 1
AND BRIBE_FILTERS.does_meet_name_filter = 1
)
)
AND IFNULL(BRIBE_ACCESS.exists_valid_link, 0) = 1
AND (
a_get_inactive_bribe = 1
OR BRIBES.active = 1
OR BRIBE.active = 1
)
;
END IF;
@@ -318,28 +571,45 @@ BEGIN
-- Filter records
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Bribe t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
DELETE t_BRIBES
FROM tmp_Bribe_Calc_Bribe t_BRIBES
DELETE t_BRIBE
FROM tmp_Bribe_Calc_Bribe t_BRIBE
LEFT JOIN tmp_Calc_User_Access_Calc_Bribe t_USER ON t_BRIBE.id_user = t_USER.id_user
WHERE
(
a_require_all_id_search_filters_met = 1
AND (
t_BRIBES.does_meet_id_filters = 0
t_BRIBE.does_meet_id_filters = 0
OR (
t_BRIBE.exists_valid_link = 0
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
)
)
)
OR (
a_require_all_non_id_search_filters_met = 1
AND (
t_BRIBES.does_meet_non_id_filters = 0
t_BRIBE.does_meet_non_id_filters = 0
OR (
t_BRIBE.exists_valid_link = 0
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
)
)
)
OR (
a_require_any_id_search_filters_met = 1
AND t_BRIBES.does_meet_id_filters = 0
AND t_BRIBE.does_meet_id_filters = 0
AND (
t_BRIBE.exists_valid_link = 0
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
)
)
OR (
a_require_any_non_id_search_filters_met = 1
AND t_BRIBES.does_meet_non_id_filters = 0
AND t_BRIBE.does_meet_non_id_filters = 0
AND (
t_BRIBE.exists_valid_link = 0
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
)
)
;
END IF;
@@ -351,80 +621,6 @@ BEGIN
-- Calculated fields
-- Permissions
IF a_debug = 1 THEN
SELECT
a_guid -- a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
a_guid -- a_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = a_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error_Calc_Bribe t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error_Calc_Bribe (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Dogs and Bribes.'
)
;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access(
a_guid
, 0 -- a_debug
);
IF a_debug = 1 THEN
SELECT 'Before non-permitted data deletion';
@@ -459,16 +655,16 @@ BEGIN
)
SELECT
a_guid
, t_BRIBES.id_bribe
, BRIBES.code
, BRIBES.name
, BRIBES.active
, t_BRIBE.id_bribe
, BRIBE.code
, BRIBE.name
, BRIBE.active
, t_BRIBES.does_meet_id_filters
, t_BRIBES.does_meet_non_id_filters
FROM fetchmetrics.DOG_Bribe BRIBES
INNER JOIN tmp_Bribe_Calc_Bribe t_BRIBES ON BRIBES.id_bribe = t_BRIBES.id_bribe
ORDER BY BRIBES.name
, t_BRIBE.does_meet_id_filters
, t_BRIBE.does_meet_non_id_filters
FROM fetchmetrics.DOG_Bribe BRIBE
INNER JOIN tmp_Bribe_Calc_Bribe t_BRIBE ON BRIBE.id_bribe = t_BRIBE.id_bribe
ORDER BY BRIBE.name
;
COMMIT;
@@ -492,13 +688,12 @@ BEGIN
IF a_debug = 1 AND v_can_view = 1 THEN
SELECT * FROM tmp_Bribe_Calc_Bribe;
END IF;
CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 );
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Bribe_Calc_Bribe;
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Bribe;
IF a_debug = 1 THEN
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
@@ -517,6 +712,11 @@ CALL fetchmetrics.p_dog_calc_bribe (
, 0 -- a_get_inactive_bribe
, '' -- a_ids_bribe
, '' -- a_names_bribe
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 0 -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met

View File

@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_bribe (
, IN a_get_inactive_bribe BIT
, IN a_ids_bribe TEXT
, IN a_names_bribe TEXT
, IN a_get_all_user BIT
, IN a_get_inactive_user BIT
, IN a_ids_user TEXT
, IN a_names_user TEXT
, IN a_emails_user TEXT
, IN a_require_all_id_search_filters_met BIT
, IN a_require_any_id_search_filters_met BIT
, IN a_require_all_non_id_search_filters_met BIT
@@ -23,7 +28,6 @@ BEGIN
DECLARE v_guid BINARY(36);
DECLARE v_id_access_level_view INT;
DECLARE v_id_minimum INT;
DECLARE v_id_permission_dog_view INT;
DECLARE v_id_type_error_bad_data INT;
DECLARE v_id_type_error_no_permission INT;
DECLARE v_time_start TIMESTAMP(6);
@@ -81,20 +85,9 @@ BEGIN
SET v_code_type_error_no_permission := 'NO_PERMISSION';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
SET a_id_user := IFNULL(a_id_user, 0);
/*
SET a_get_all_bribe := IFNULL(a_get_all_bribe, 0);
SET a_get_inactive_bribe := IFNULL(a_get_inactive_bribe, 0);
SET a_ids_bribe := TRIM(IFNULL(a_ids_bribe, ''));
SET a_names_bribe := TRIM(IFNULL(a_names_bribe, ''));
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
*/
SET a_debug := IFNULL(a_debug, 0);
IF a_debug = 1 THEN
@@ -104,6 +97,11 @@ BEGIN
, a_get_inactive_bribe
, a_ids_bribe
, a_names_bribe
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met
@@ -115,7 +113,6 @@ BEGIN
v_id_type_error_bad_data
, v_id_type_error_no_permission
, v_guid
, v_id_permission_dog_view
, v_time_start
;
END IF;
@@ -140,83 +137,6 @@ BEGIN
, msg TEXT NOT NULL
);
-- Permissions
IF a_debug = 1 THEN
SELECT
v_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
v_guid
, 0 -- get_all_user
, 0 -- get_inactive_user
, a_id_user -- ids_user
, '' -- a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
, 0 -- a_require_any_non_id_search_filters_met
, v_id_permission_dog_view -- ids_permission
, v_id_access_level_view -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
SELECT
IFNULL(CALC_USER_T.has_access, 0)
INTO
v_can_view
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
WHERE CALC_USER_T.GUID = v_guid
LIMIT 1
;
IF a_debug = 1 THEN
SELECT v_can_view;
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
SELECT * FROM tmp_Msg_Error t_ERROR;
END IF;
IF (v_can_view = 0) THEN
DELETE t_ME
FROM tmp_Msg_Error t_ME
WHERE t_ME.id_type <> v_id_type_error_no_permission
;
INSERT INTO tmp_Msg_Error (
id_type
, code
, msg
)
VALUES (
v_id_type_error_no_permission
, v_code_type_error_no_permission
, 'You do not have permission to view Bribes.'
)
;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access(
v_guid
, 0 -- a_debug
);
-- Call Bribe Calc
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
@@ -228,6 +148,11 @@ BEGIN
, a_get_inactive_bribe -- a_get_inactive_bribe
, a_ids_bribe -- a_ids_bribe
, a_names_bribe -- a_names_bribe
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -244,6 +169,11 @@ BEGIN
, a_get_inactive_bribe -- a_get_inactive_bribe
, a_ids_bribe -- a_ids_bribe
, a_names_bribe -- a_names_bribe
, a_get_all_user
, a_get_inactive_user
, a_ids_user
, a_names_user
, a_emails_user
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -283,15 +213,6 @@ BEGIN
SELECT * FROM tmp_Bribe;
END IF;
END IF;
-- Filter outputs
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
IF a_debug = 1 THEN
SELECT * FROM tmp_Bribe;
END IF;
DELETE FROM tmp_Bribe;
END IF;
-- Outputs
@@ -351,6 +272,11 @@ CALL fetchmetrics.p_dog_get_many_bribe (
, 0 -- a_get_inactive_bribe
, '' -- a_ids_bribe
, '' -- a_names_bribe
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met
@@ -365,6 +291,11 @@ CALL fetchmetrics.p_dog_get_many_bribe (
, 0 -- a_get_inactive_bribe
, '' -- a_ids_bribe
, 'pat,point' -- a_names_bribe
, 1 -- a_get_all_user
, 0 -- a_get_inactive_user
, '' -- a_ids_user
, 'pat,point' -- a_names_user
, 'pat,point' -- a_emails_user
, 1 -- a_require_all_id_search_filters_met
, 1 -- a_require_any_id_search_filters_met
, 0 -- a_require_all_non_id_search_filters_met

View File

@@ -476,6 +476,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -498,6 +503,11 @@ BEGIN
, a_names_command -- a_names_command
, '' -- a_hand_signal_descriptions_link
, a_notes_command -- a_notes_command
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -630,6 +640,11 @@ BEGIN
, a_get_inactive_bribe -- a_get_inactive_bribe
, a_ids_bribe -- a_ids_bribe
, a_names_bribe -- a_names_bribe
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -646,6 +661,11 @@ BEGIN
, a_get_inactive_bribe -- a_get_inactive_bribe
, a_ids_bribe -- a_ids_bribe
, a_names_bribe -- a_names_bribe
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met

View File

@@ -541,6 +541,11 @@ BEGIN
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
, a_ids_response_quality_metric -- a_ids_response_quality_metric
, a_names_response_quality_metric -- a_names_response_quality_metric
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -557,6 +562,11 @@ BEGIN
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
, a_ids_response_quality_metric -- a_ids_response_quality_metric
, a_names_response_quality_metric -- a_names_response_quality_metric
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -606,6 +616,11 @@ BEGIN
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
, a_ids_obedience_level -- a_ids_obedience_level
, a_names_obedience_level -- a_names_obedience_level
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -622,6 +637,11 @@ BEGIN
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
, a_ids_obedience_level -- a_ids_obedience_level
, a_names_obedience_level -- a_names_obedience_level
, a_get_all_user_handler
, a_get_inactive_user_handler
, a_ids_user_handler
, a_names_user_handler
, a_emails_user_handler
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
@@ -1189,7 +1209,7 @@ DELIMITER ;
/*
CALL fetchmetrics.p_dog_calc_assessment_response (
'slippery ' -- a_guid
'slibbery ' -- a_guid
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
, 1 -- a_get_all_assessment_response
, 0 -- a_get_inactive_assessment_response
@@ -1275,7 +1295,7 @@ FROM fetchmetrics.DOG_Assessment_Response_Temp
;
CALL fetchmetrics.p_dog_clear_calc_assessment_response (
'slippery ' -- a_guid
'slibbery ' -- a_guid
, 1 -- debug
);

View File

@@ -1550,6 +1550,25 @@ VALUES
;
/*
INSERT INTO fetchmetrics.DOG_Bribe_User_Link (
id_bribe
, id_user
, id_access_level
)
SELECT
B.id_bribe
, 1
, 3
FROM fetchmetrics.DOG_Bribe B
UNION
SELECT
B.id_bribe
, 2
, 3
FROM fetchmetrics.DOG_Bribe B
;
INSERT INTO fetchmetrics.DOG_Assessment_Command_Modality_Link (
id_assessment
, id_command

View File

@@ -5033,6 +5033,50 @@ var PageBlogHome = /*#__PURE__*/function (_BasePage) {
}(BasePage);
blog_home_defineProperty(PageBlogHome, "hash", hashPageBlogHome);
;// ./static/js/pages/blog/article_5_ways_to_increase_client_retention_in_your_dog_training_business.js
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(o) { "@babel/helpers - typeof"; return article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(o); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, article_5_ways_to_increase_client_retention_in_your_dog_training_business_toPropertyKey(o.key), o); } }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_createClass(e, r, t) { return r && article_5_ways_to_increase_client_retention_in_your_dog_training_business_defineProperties(e.prototype, r), t && article_5_ways_to_increase_client_retention_in_your_dog_training_business_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_callSuper(t, o, e) { return o = article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(o), article_5_ways_to_increase_client_retention_in_your_dog_training_business_possibleConstructorReturn(t, article_5_ways_to_increase_client_retention_in_your_dog_training_business_isNativeReflectConstruct() ? Reflect.construct(o, e || [], article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(t).constructor) : o.apply(t, e)); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_possibleConstructorReturn(t, e) { if (e && ("object" == article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return article_5_ways_to_increase_client_retention_in_your_dog_training_business_assertThisInitialized(t); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (article_5_ways_to_increase_client_retention_in_your_dog_training_business_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_superPropGet(t, o, e, r) { var p = article_5_ways_to_increase_client_retention_in_your_dog_training_business_get(article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_get() { return article_5_ways_to_increase_client_retention_in_your_dog_training_business_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = article_5_ways_to_increase_client_retention_in_your_dog_training_business_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, article_5_ways_to_increase_client_retention_in_your_dog_training_business_get.apply(null, arguments); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(t));); return t; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(t) { return article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, article_5_ways_to_increase_client_retention_in_your_dog_training_business_getPrototypeOf(t); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && article_5_ways_to_increase_client_retention_in_your_dog_training_business_setPrototypeOf(t, e); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_setPrototypeOf(t, e) { return article_5_ways_to_increase_client_retention_in_your_dog_training_business_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, article_5_ways_to_increase_client_retention_in_your_dog_training_business_setPrototypeOf(t, e); }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_defineProperty(e, r, t) { return (r = article_5_ways_to_increase_client_retention_in_your_dog_training_business_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_toPropertyKey(t) { var i = article_5_ways_to_increase_client_retention_in_your_dog_training_business_toPrimitive(t, "string"); return "symbol" == article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(i) ? i : i + ""; }
function article_5_ways_to_increase_client_retention_in_your_dog_training_business_toPrimitive(t, r) { if ("object" != article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != article_5_ways_to_increase_client_retention_in_your_dog_training_business_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
// internal
// import BasePage from "../base.js";
// external
var PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness = /*#__PURE__*/function (_PageBlogHome) {
function PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness(router) {
article_5_ways_to_increase_client_retention_in_your_dog_training_business_classCallCheck(this, PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness);
return article_5_ways_to_increase_client_retention_in_your_dog_training_business_callSuper(this, PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, [router]);
}
article_5_ways_to_increase_client_retention_in_your_dog_training_business_inherits(PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, _PageBlogHome);
return article_5_ways_to_increase_client_retention_in_your_dog_training_business_createClass(PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, [{
key: "initialize",
value: function initialize() {
this.sharedInitialize();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
}, {
key: "leave",
value: function leave() {
article_5_ways_to_increase_client_retention_in_your_dog_training_business_superPropGet(PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, "leave", this, 3)([]);
}
}]);
}(PageBlogHome);
article_5_ways_to_increase_client_retention_in_your_dog_training_business_defineProperty(PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, "hash", hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness);
;// ./static/js/pages/blog/article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients.js
function article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients_typeof(o) { "@babel/helpers - typeof"; return article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients_typeof(o); }
function article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
@@ -8990,6 +9034,7 @@ function router_toPrimitive(t, r) { if ("object" != router_typeof(t) || !t) retu
// Dog
@@ -9049,6 +9094,10 @@ var Router = /*#__PURE__*/function () {
name: 'PageBlogHome',
module: PageBlogHome
};
this.pages[hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness] = {
name: 'PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness',
module: PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness
};
this.pages[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients] = {
name: 'PageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients',
module: PageBlogBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients
@@ -9174,6 +9223,10 @@ var Router = /*#__PURE__*/function () {
var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
return _this.navigateToHash(hashPageBlogHome, isPopState);
};
this.routes[hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness] = function () {
var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
return _this.navigateToHash(hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, isPopState);
};
this.routes[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients] = function () {
var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
return _this.navigateToHash(hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients, isPopState);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,25 @@
// internal
// import BasePage from "../base.js";
import PageBlogHome from "./home.js";
// external
export default class PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness extends PageBlogHome {
static hash = hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness;
constructor(router) {
super(router);
}
initialize() {
this.sharedInitialize();
this.hookupFormNewsletter();
this.hookupButtonSubmitFormContactUs();
}
leave() {
super.leave();
}
}

View File

@@ -8,6 +8,7 @@ import PageApplyFoundingPartner from './pages/core/apply-founding-partner.js';
import PageApplyFoundingPartnerSuccess from './pages/core/apply-founding-partner-success.js';
// Blog
import PageBlogHome from './pages/blog/home.js';
import PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness from './pages/blog/article_5_ways_to_increase_client_retention_in_your_dog_training_business.js';
import PageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients from './pages/blog/article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients.js';
import PageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess from './pages/blog/article_how_to_scale_your_dog_training_business_from_25_to_100_plus_clients.js';
import PageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress from './pages/blog/article_the_science_behind_dog_training_assessments_how_to_track_real_progress.js';
@@ -55,6 +56,7 @@ export default class Router {
this.pages[hashPageApplyFoundingPartnerSuccess] = { name: 'PageApplyFoundingPartnerSuccess', module: PageApplyFoundingPartnerSuccess };
// Blog
this.pages[hashPageBlogHome] = { name: 'PageBlogHome', module: PageBlogHome };
this.pages[hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness] = { name: 'PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness', module: PageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness };
this.pages[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients] = { name: 'PageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients', module: PageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients };
this.pages[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess] = { name: 'PageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess', module: PageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess };
this.pages[hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress] = { name: 'PageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress', module: PageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress };
@@ -93,6 +95,7 @@ export default class Router {
this.routes[hashPageApplyFoundingPartnerSuccess] = (isPopState = false) => this.navigateToHash(hashPageApplyFoundingPartnerSuccess, isPopState);
// Blog
this.routes[hashPageBlogHome] = (isPopState = false) => this.navigateToHash(hashPageBlogHome, isPopState);
this.routes[hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness] = (isPopState = false) => this.navigateToHash(hashPageBlogArticle5WaysToIncreaseClientRetentionInYourDogTrainingBusiness, isPopState);
this.routes[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients] = (isPopState = false) => this.navigateToHash(hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients, isPopState);
this.routes[hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess] = (isPopState = false) => this.navigateToHash(hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess, isPopState);
this.routes[hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress] = (isPopState = false) => this.navigateToHash(hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress, isPopState);