From e5eee00beb6d27ea08c98da78dbb40c996b3fd02 Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Tue, 12 Aug 2025 07:55:51 +0100 Subject: [PATCH] Fix(Content): Remove name from false testimonial. --- static/MySQL/00000_combined.sql | 617 ++++++++++++++---- static/MySQL/31004_tri_DOG_Dog_User_Link.sql | 1 + static/MySQL/71001_p_dog_calc_dog.sql | 290 +++++--- static/MySQL/71001_p_dog_get_many_dog.sql | 30 + static/MySQL/71104_p_dog_calc_command.sql | 321 ++++++--- static/MySQL/71104_p_dog_get_many_command.sql | 30 + static/MySQL/71200_p_dog_calc_location.sql | 268 +++++--- static/MySQL/90000_populate.sql | 18 + ...tch-metrics-social-media-post-template.xcf | Bin 0 -> 352118 bytes static/images/stick-man-walking-up-stairs.png | Bin 0 -> 59820 bytes ...er_needs_a_command_dictionary_in_2025.html | 2 +- todo.txt | 1 + 12 files changed, 1194 insertions(+), 384 deletions(-) create mode 100644 static/docs/fetch-metrics-social-media-post-template.xcf create mode 100644 static/images/stick-man-walking-up-stairs.png diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index a51b763..5ac1675 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,31 +1,40 @@ USE demo; -DROP PROCEDURE IF EXISTS demo.p_dog_get_many_dog; +DROP PROCEDURE IF EXISTS demo.p_dog_calc_dog; DELIMITER // -CREATE PROCEDURE demo.p_dog_get_many_dog ( - IN a_id_user INT +CREATE PROCEDURE demo.p_dog_calc_dog ( + IN a_guid BINARY(36) + , IN a_id_user INT , IN a_get_all_dog BIT , IN a_get_inactive_dog BIT , IN a_ids_dog TEXT , IN a_names_dog 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 , IN a_require_any_non_id_search_filters_met BIT + , IN a_show_errors BIT , IN a_debug BIT ) BEGIN DECLARE v_can_view BIT; DECLARE v_code_type_error_bad_data VARCHAR(100); DECLARE v_code_type_error_no_permission VARCHAR(100); - DECLARE v_guid BINARY(36); + DECLARE v_has_filter_dog_id BIT; + DECLARE v_has_filter_dog_name BIT; 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_is_super_user BIT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -38,14 +47,14 @@ BEGIN ROLLBACK; - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); - INSERT INTO tmp_Msg_Error ( + INSERT INTO tmp_Msg_Error_Calc_Dog ( id_type , code , msg @@ -68,15 +77,14 @@ BEGIN , ERROR_TYPE.background_colour , ERROR_TYPE.text_colour , t_ERROR.msg - FROM tmp_Msg_Error t_ERROR + FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; - DROP TABLE IF EXISTS tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Dog; END; SET v_time_start := CURRENT_TIMESTAMP(6); - SET v_guid := UUID(); SET v_code_type_error_bad_data := 'BAD_DATA'; SET v_code_type_error_no_permission := 'NO_PERMISSION'; SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); @@ -84,68 +92,107 @@ BEGIN SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1); SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + CALL demo.p_core_validate_guid ( a_guid ); + SET a_id_user := IFNULL(a_id_user, 0); - /* SET a_get_all_dog := IFNULL(a_get_all_dog, 0); SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0); SET a_ids_dog := TRIM(IFNULL(a_ids_dog, '')); SET a_names_dog := TRIM(IFNULL(a_names_dog, '')); + -- USER filters handled by p_dog_calc_user_access 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_show_errors := IFNULL(a_show_errors, 0); SET a_debug := IFNULL(a_debug, 0); IF a_debug = 1 THEN SELECT - a_id_user + a_guid + , a_id_user , a_get_all_dog , a_get_inactive_dog , a_ids_dog , a_names_dog + , 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 , a_require_any_non_id_search_filters_met + , a_show_errors , a_debug ; SELECT v_id_type_error_bad_data , v_id_type_error_no_permission - , v_guid , v_id_permission_dog_view , v_time_start ; END IF; - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog; - CREATE TEMPORARY TABLE tmp_Dog ( - id_dog INT NOT NULL - , name VARCHAR(250) - , appearance VARCHAR(1000) - , mass_kg DECIMAL(7, 3) - , notes TEXT - , active BIT + CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Dog ( + 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 , does_meet_id_filters BIT , does_meet_non_id_filters BIT + ); + + CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog ( + id_dog INT NOT NULL + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL ); - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL - ); + ); + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Id_Calc_Dog; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Name_Calc_Dog; + + SET v_has_filter_dog_id = CASE WHEN a_ids_dog <> '' THEN 1 ELSE 0 END; + SET v_has_filter_dog_name = CASE WHEN a_names_dog <> '' THEN 1 ELSE 0 END; + + + -- Permissions IF a_debug = 1 THEN SELECT - v_guid -- guid + a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user @@ -159,12 +206,12 @@ BEGIN , v_id_permission_dog_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , a_debug -- a_debug + , 0 -- a_debug ; END IF; CALL demo.p_dog_calc_user_access( - v_guid-- guid + a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user @@ -178,30 +225,33 @@ BEGIN , v_id_permission_dog_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , a_debug -- a_debug + , 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 demo.DOG_Calc_User_Access_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = v_guid + WHERE CALC_USER_T.guid = a_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; + SELECT + v_can_view + , v_is_super_user + ; END IF; IF (v_can_view = 0) THEN DELETE t_ME - FROM tmp_Msg_Error t_ME + FROM tmp_Msg_Error_Calc_Dog t_ME WHERE t_ME.id_type <> v_id_type_error_no_permission ; - INSERT INTO tmp_Msg_Error ( + INSERT INTO tmp_Msg_Error_Calc_Dog ( id_type , code , msg @@ -209,131 +259,406 @@ BEGIN VALUES ( v_id_type_error_no_permission , v_code_type_error_no_permission - , 'You do not have permission to view Commands.' + , 'You do not have permission to view Dog.' ) ; END IF; CALL demo.p_dog_clear_calc_user_access( - v_guid + a_guid , 0 -- a_debug ); + -- Users + IF a_debug = 1 THEN + SELECT + a_guid -- guid + , 0 -- get_all_user + , 0 -- 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_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , a_debug -- a_debug + ; + END IF; - -- Call Dog Calc - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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 + CALL demo.p_dog_calc_user_access( + a_guid-- guid + , 0 -- get_all_user + , 0 -- 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_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , a_debug -- a_debug + ); + + INSERT INTO tmp_Calc_User_Access_Calc_Dog ( + 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 + , 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.does_meet_id_filters + , CALC_USER_T.does_meet_non_id_filters + FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE CALC_USER_T.GUID = a_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT 'After get many user'; + SELECT * FROM tmp_Calc_User_Access_Calc_Dog; + SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Dog t_ERROR; + SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR; + END IF; + + CALL demo.p_dog_clear_calc_user_access( + a_guid + , 0 -- a_debug + ); + + + -- Dogs + IF v_has_filter_dog_id = 1 THEN + CALL demo.p_core_split(a_guid, a_ids_dog, ',', a_debug); + + SET sql_mode = ''; + IF a_debug = 1 THEN - SELECT - v_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_dog -- a_get_all_dog - , a_get_inactive_dog -- a_get_inactive_dog - , a_ids_dog -- a_ids_dog - , a_names_dog -- a_names_dog - , 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 - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug + SELECT * + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + SELECT COUNT(*) AS count_split_ids + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' ; END IF; - - CALL demo.p_dog_calc_dog( - v_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_dog -- a_get_all_dog - , a_get_inactive_dog -- a_get_inactive_dog - , a_ids_dog -- a_ids_dog - , a_names_dog -- a_names_dog - , 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 - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug - ); - - INSERT INTO tmp_Dog ( - id_dog - , name - , appearance - , mass_kg - , notes - , active + + INSERT INTO tmp_Split_Id_Calc_Dog ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL demo.p_core_clear_split( a_guid ); + END IF; - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - DOG_T.id_dog - , DOG_T.name - , DOG_T.appearance - , DOG_T.mass_kg - , DOG_T.notes - , DOG_T.active + IF v_has_filter_dog_name = 1 THEN + CALL demo.p_core_split(a_guid, a_names_dog, ',', a_debug); + + SET sql_mode = ''; - , DOG_T.does_meet_id_filters - , DOG_T.does_meet_non_id_filters - FROM demo.DOG_Dog_Temp DOG_T - WHERE DOG_T.GUID = v_guid - ; - IF a_debug = 1 THEN - SELECT * FROM tmp_Dog; + SELECT * + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + SELECT COUNT(*) AS count_split_names + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; END IF; + + INSERT INTO tmp_Split_Name_Calc_Dog ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM demo.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL demo.p_core_clear_split( a_guid ); + END IF; + + IF a_debug = 1 THEN + SELECT * + FROM tmp_Split_Id_Calc_Dog + ; + SELECT * + FROM tmp_Split_Name_Calc_Dog + ; END IF; - -- Filter outputs - IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.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_Dog; - END IF; + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.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 EXISTS ( + SELECT * + FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID + LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(DOG.id_dog) + OR ( + DOG.active = 0 + AND a_get_inactive_dog = 0 + ) + ) THEN + INSERT INTO tmp_Msg_Error_Calc_Dog ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL')) + FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID + LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(DOG.id_dog) + OR ( + DOG.active = 0 + AND a_get_inactive_dog = 0 + ) + ; + /* Don't error on names not found + ELSEIF EXISTS () + */ + ELSE + INSERT INTO tmp_Dog_Calc_Dog ( + id_dog + , does_meet_id_filters + , does_meet_non_id_filters + ) + WITH + Dog_Id_Filter AS ( + SELECT DOG.id_dog + FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID + INNER JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog + ) + , Dog_Name_Filter AS ( + SELECT DOG.id_dog + FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME + INNER JOIN demo.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%') + WHERE IFNULL(t_SPLIT_NAME.substring, '') <> '' + ) + , Dog_Filters AS ( + SELECT + DOG_COMBINED.id_dog + , MAX(DOG_COMBINED.does_meet_id_filter) AS does_meet_id_filter + , MAX(DOG_COMBINED.does_meet_name_filter) AS does_meet_name_filter + FROM ( + SELECT + DOG_ID_FILTER.id_dog + , 1 AS does_meet_id_filter + , 0 AS does_meet_name_filter + FROM Dog_Id_Filter DOG_ID_FILTER + UNION + SELECT + DOG_NAME_FILTER.id_dog + , 0 AS does_meet_id_filter + , 1 AS does_meet_name_filter + FROM Dog_Name_Filter DOG_NAME_FILTER + ) DOG_COMBINED + GROUP BY DOG_COMBINED.id_dog + ) + SELECT + DOG.id_dog + , CASE WHEN + v_has_filter_dog_id = 0 + OR IFNULL(DOG_FILTERS.does_meet_id_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_id_filters + , CASE WHEN + ( + v_has_filter_dog_name = 0 + ) + OR IFNULL(DOG_FILTERS.does_meet_name_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_non_id_filters + FROM demo.DOG_Dog DOG + LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK ON DOG.id_dog = DOG_USER_LINK.id_dog + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER ON DOG_USER_LINK.id_user = t_USER.id_user + WHERE + ( + a_get_all_dog = 1 + OR ( + v_has_filter_dog_id = 1 + AND DOG_FILTERS.does_meet_id_filter = 1 + ) + OR ( + v_has_filter_dog_name = 1 + AND DOG_FILTERS.does_meet_name_filter = 1 + ) + ) + AND ( + v_is_super_user = 1 + OR t_USER.id_user IS NOT NULL + ) + AND ( + a_get_inactive_dog = 1 + OR DOG.active = 1 + ) + ; + END IF; + END IF; + + DELETE FROM tmp_Split_Id_Calc_Dog; + DELETE FROM tmp_Split_Name_Calc_Dog; - DELETE FROM tmp_Dog; + IF a_debug = 1 THEN + SELECT 'After get all dogs'; + SELECT * FROM tmp_Dog_Calc_Dog; + END IF; + + -- Filter records + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.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_DOG + FROM tmp_Dog_Calc_Dog t_DOG + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK ON t_DOG.id_dog = DOG_USER_LINK.id_dog + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER ON DOG_USER_LINK.id_user = t_USER.id_user + WHERE + ( + a_require_all_id_search_filters_met = 1 + AND ( + t_DOG.does_meet_id_filters = 0 + OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 + ) + ) + OR ( + a_require_all_non_id_search_filters_met = 1 + AND ( + t_DOG.does_meet_non_id_filters = 0 + OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) + ) + OR ( + a_require_any_id_search_filters_met = 1 + AND t_DOG.does_meet_id_filters = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 + ) + OR ( + a_require_any_non_id_search_filters_met = 1 + AND t_DOG.does_meet_non_id_filters = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) + ; END IF; + IF a_debug = 1 THEN + SELECT 'After filter dogs'; + SELECT * FROM tmp_Dog_Calc_Dog; + END IF; + + + IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.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_Dog_Calc_Dog; + END IF; + + DELETE FROM tmp_Dog_Calc_Dog; + END IF; -- Outputs + -- Dogs + INSERT INTO demo.DOG_Dog_Temp ( + guid + , id_dog + , name + , appearance + , mass_kg + , notes + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) SELECT - t_DOG.id_dog - , t_DOG.name - , t_DOG.appearance - , t_DOG.mass_kg - , t_DOG.notes - , t_DOG.active + a_guid + , t_DOG.id_dog + , DOG.name + , DOG.appearance + , DOG.mass_kg + , DOG.notes + , DOG.active , t_DOG.does_meet_id_filters , t_DOG.does_meet_non_id_filters - FROM tmp_Dog t_DOG - ; - - -- Errors - SELECT - t_ERROR.id_error - , t_ERROR.id_type - , t_ERROR.code - , ERROR_TYPE.name - , ERROR_TYPE.description - , ERROR_TYPE.is_breaking_error - , ERROR_TYPE.background_colour - , ERROR_TYPE.text_colour - , t_ERROR.msg - FROM tmp_Msg_Error t_ERROR - INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + FROM demo.DOG_Dog DOG + INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog ; - IF a_debug = 1 AND v_can_view = 1 THEN - SELECT * FROM tmp_Dog; + -- Errors + IF a_show_errors = 1 THEN + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_Dog t_ERROR + INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; END IF; - - CALL demo.p_dog_clear_calc_dog( - v_guid -- a_guid - , 0 -- a_debug - ); - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Dog; + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Dog_Calc_Dog; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog; IF a_debug = 1 THEN CALL demo.p_core_debug_timing_reporting ( v_time_start ); @@ -342,32 +667,34 @@ END // DELIMITER ; -/* - -CALL demo.p_dog_get_many_dog ( - 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user +CALL demo.p_dog_calc_dog ( + 'slips ' -- a_guid + , 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_dog , 0 -- a_get_inactive_dog , '' -- a_ids_dog , '' -- a_names_dog + , 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 , 1 -- a_require_any_non_id_search_filters_met + , 1 -- a_show_errors , 1 -- a_debug ); -CALL demo.p_dog_get_many_dog ( - 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user - , 1 -- a_get_all_dog - , 0 -- a_get_inactive_dog - , '' -- a_ids_dog - , 'pat' -- a_names_dog - , 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 - , 1 -- a_require_any_non_id_search_filters_met - , 1 -- a_debug + + +SELECT * +FROM demo.DOG_Dog_Temp +; + +CALL demo.p_dog_clear_calc_dog ( + 'slips ' -- a_guid + , 1 -- debug ); -*/ \ No newline at end of file diff --git a/static/MySQL/31004_tri_DOG_Dog_User_Link.sql b/static/MySQL/31004_tri_DOG_Dog_User_Link.sql index b7c1009..ee03536 100644 --- a/static/MySQL/31004_tri_DOG_Dog_User_Link.sql +++ b/static/MySQL/31004_tri_DOG_Dog_User_Link.sql @@ -48,3 +48,4 @@ BEGIN ; END // DELIMITER ; + diff --git a/static/MySQL/71001_p_dog_calc_dog.sql b/static/MySQL/71001_p_dog_calc_dog.sql index b3ebad8..3d215e3 100644 --- a/static/MySQL/71001_p_dog_calc_dog.sql +++ b/static/MySQL/71001_p_dog_calc_dog.sql @@ -34,6 +34,7 @@ BEGIN 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_is_super_user BIT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -139,7 +140,25 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog; DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog; + CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Dog ( + 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 + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); + CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog ( id_dog INT NOT NULL , does_meet_id_filters BIT NOT NULL @@ -168,6 +187,172 @@ BEGIN SET v_has_filter_dog_id = CASE WHEN a_ids_dog <> '' THEN 1 ELSE 0 END; SET v_has_filter_dog_name = CASE WHEN a_names_dog <> '' 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_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) + , 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_Dog t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Calc_Dog ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to view Dog.' + ) + ; + 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 + , 0 -- get_all_user + , 0 -- 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_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , a_debug -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid-- guid + , 0 -- get_all_user + , 0 -- 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_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , a_debug -- a_debug + ); + + INSERT INTO tmp_Calc_User_Access_Calc_Dog ( + 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 + , 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.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 + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT 'After get many user'; + SELECT * FROM tmp_Calc_User_Access_Calc_Dog; + SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Dog t_ERROR; + SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + a_guid + , 0 -- a_debug + ); + + -- Dogs IF v_has_filter_dog_id = 1 THEN CALL fetchmetrics.p_core_split(a_guid, a_ids_dog, ',', a_debug); @@ -337,6 +522,8 @@ BEGIN THEN 1 ELSE 0 END AS does_meet_non_id_filters FROM fetchmetrics.DOG_Dog DOG LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK ON DOG.id_dog = DOG_USER_LINK.id_dog + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER ON DOG_USER_LINK.id_user = t_USER.id_user WHERE ( a_get_all_dog = 1 @@ -349,6 +536,10 @@ BEGIN AND DOG_FILTERS.does_meet_name_filter = 1 ) ) + AND ( + v_is_super_user = 1 + OR t_USER.id_user IS NOT NULL + ) AND ( a_get_inactive_dog = 1 OR DOG.active = 1 @@ -369,22 +560,32 @@ BEGIN IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog 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_DOG FROM tmp_Dog_Calc_Dog t_DOG + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK ON t_DOG.id_dog = DOG_USER_LINK.id_dog + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER ON DOG_USER_LINK.id_user = t_USER.id_user WHERE ( a_require_all_id_search_filters_met = 1 - AND t_DOG.does_meet_id_filters = 0 + AND ( + t_DOG.does_meet_id_filters = 0 + OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 + ) ) OR ( a_require_all_non_id_search_filters_met = 1 - AND t_DOG.does_meet_non_id_filters = 0 + AND ( + t_DOG.does_meet_non_id_filters = 0 + OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) ) OR ( a_require_any_id_search_filters_met = 1 AND t_DOG.does_meet_id_filters = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) OR ( a_require_any_non_id_search_filters_met = 1 AND t_DOG.does_meet_non_id_filters = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; END IF; @@ -394,80 +595,6 @@ BEGIN SELECT * FROM tmp_Dog_Calc_Dog; END IF; - -- 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_Dog t_ME - WHERE t_ME.id_type <> v_id_type_error_no_permission - ; - INSERT INTO tmp_Msg_Error_Calc_Dog ( - id_type - , code - , msg - ) - VALUES ( - v_id_type_error_no_permission - , v_code_type_error_no_permission - , 'You do not have permission to view Dog.' - ) - ; - END IF; - - CALL fetchmetrics.p_dog_clear_calc_user_access( - a_guid - , 0 -- a_debug - ); IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Dog 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 @@ -531,6 +658,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog; DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog; DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog; IF a_debug = 1 THEN CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); @@ -549,6 +677,11 @@ CALL fetchmetrics.p_dog_calc_dog ( , 0 -- a_get_inactive_dog , '' -- a_ids_dog , '' -- a_names_dog + , 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 @@ -565,6 +698,11 @@ CALL fetchmetrics.p_dog_calc_dog ( , 0 -- a_get_inactive_dog , '' -- a_ids_dog , 'pat' -- a_names_dog + , 1 -- a_get_all_user + , 0 -- a_get_inactive_user + , '' -- a_ids_user + , 'pat' -- a_names_user + , 'pat' -- 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 diff --git a/static/MySQL/71001_p_dog_get_many_dog.sql b/static/MySQL/71001_p_dog_get_many_dog.sql index 26c1fae..0994df0 100644 --- a/static/MySQL/71001_p_dog_get_many_dog.sql +++ b/static/MySQL/71001_p_dog_get_many_dog.sql @@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_dog ( , IN a_get_inactive_dog BIT , IN a_ids_dog TEXT , IN a_names_dog 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 @@ -104,6 +109,11 @@ BEGIN , a_get_inactive_dog , a_ids_dog , a_names_dog + , 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 @@ -230,6 +240,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 + , 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 @@ -246,6 +261,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 + , 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 @@ -350,6 +370,11 @@ CALL fetchmetrics.p_dog_get_many_dog ( , 0 -- a_get_inactive_dog , '' -- a_ids_dog , '' -- a_names_dog + , 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 @@ -363,6 +388,11 @@ CALL demo.p_dog_get_many_dog ( , 0 -- a_get_inactive_dog , '' -- a_ids_dog , 'pat' -- a_names_dog + , 1 -- a_get_all_user + , 0 -- a_get_inactive_user + , '' -- a_ids_user + , 'pat' -- a_names_user + , 'pat' -- 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 diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index 7c03fb7..81df099 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -17,6 +17,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_command ( , IN a_names_command TEXT , IN a_hand_signal_default_descriptions_command TEXT , IN a_notes_command 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 @@ -36,9 +41,10 @@ BEGIN DECLARE v_has_filter_command_notes 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_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -93,7 +99,7 @@ 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); @@ -131,6 +137,11 @@ BEGIN , a_names_command , a_hand_signal_default_descriptions_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_any_id_search_filters_met , a_require_all_non_id_search_filters_met @@ -154,6 +165,24 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Command; DROP TEMPORARY TABLE IF EXISTS tmp_Command_Calc_Command; DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category_Calc_Command; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Command; + + CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Command ( + 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 + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); CREATE TEMPORARY TABLE tmp_Command_Category_Calc_Command ( id_command_category INT NOT NULL @@ -207,6 +236,169 @@ BEGIN 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; + + -- 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_Command t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Calc_Command ( + 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 Commands.' + ) + ; + 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 + , 0 -- get_all_user + , 0 -- 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 + , a_debug -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- 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 + , a_debug -- a_debug + ); + + INSERT INTO tmp_Calc_User_Access_Calc_Command ( + 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 + , 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.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 = v_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Calc_User_Access_Calc_Command; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access ( + a_guid + , 0 -- a_debug + ); + + -- Command Categories IF v_has_filter_command_category_id = 1 THEN CALL fetchmetrics.p_core_split(a_guid, a_ids_command_category, ',', a_debug); @@ -339,6 +531,8 @@ BEGIN THEN 1 ELSE 0 END AS does_meet_non_id_filters FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY LEFT JOIN Command_Category_Filters COMMAND_CATEGORY_FILTERS ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_FILTERS.id_command_category + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user WHERE ( a_get_all_command_category = 1 @@ -351,6 +545,10 @@ BEGIN AND COMMAND_CATEGORY_FILTERS.does_meet_name_filter = 1 ) ) + AND ( + v_is_super_user = 1 + OR t_USER.id_user IS NOT NULL + ) AND ( a_get_inactive_command_category = 1 OR COMMAND_CATEGORY.active = 1 @@ -578,6 +776,8 @@ BEGIN FROM fetchmetrics.DOG_Command COMMAND INNER JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user WHERE ( a_get_all_command = 1 @@ -598,6 +798,10 @@ BEGIN AND COMMAND_FILTERS.does_meet_notes_filter = 1 ) ) + AND ( + v_is_super_user = 1 + OR t_USER.id_user IS NOT NULL + ) AND ( a_get_inactive_command = 1 OR COMMAND.active = 1 @@ -704,6 +908,8 @@ BEGIN FROM fetchmetrics.DOG_Command COMMAND INNER JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user WHERE ( a_get_all_command = 1 @@ -724,6 +930,10 @@ BEGIN AND COMMAND_FILTERS.does_meet_notes_filter = 1 ) ) + AND ( + v_is_super_user = 1 + OR t_USER.id_user IS NOT NULL + ) AND ( a_get_inactive_command = 1 OR COMMAND.active = 1 @@ -772,12 +982,15 @@ BEGIN DELETE t_COMMAND FROM tmp_Command_Calc_Command t_COMMAND LEFT JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON t_COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON DOG_USER_LINK.id_user = t_USER.id_user WHERE ( a_require_all_id_search_filters_met = 1 AND ( t_COMMAND.does_meet_id_filters = 0 OR t_COMMAND_CATEGORY.does_meet_id_filters = 0 + OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) ) OR ( @@ -785,17 +998,20 @@ BEGIN AND ( t_COMMAND.does_meet_non_id_filters = 0 OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ) OR ( a_require_any_id_search_filters_met = 1 AND t_COMMAND.does_meet_id_filters = 0 AND t_COMMAND_CATEGORY.does_meet_id_filters = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) OR ( a_require_any_non_id_search_filters_met = 1 AND t_COMMAND.does_meet_non_id_filters = 0 AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; @@ -812,30 +1028,36 @@ BEGIN SELECT * FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON DOG_USER_LINK.id_user = t_USER.id_user WHERE ( a_require_all_id_search_filters_met = 1 AND ( - CATEGORY_BEST.does_meet_id_filters = 0 + IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0 OR t_COMMAND_CATEGORY.does_meet_id_filters = 0 + OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) ) OR ( a_require_all_non_id_search_filters_met = 1 AND ( - CATEGORY_BEST.does_meet_non_id_filters = 0 + IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0 OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ) OR ( a_require_any_id_search_filters_met = 1 - AND CATEGORY_BEST.does_meet_id_filters = 0 + AND IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0 AND t_COMMAND_CATEGORY.does_meet_id_filters = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) OR ( a_require_any_non_id_search_filters_met = 1 - AND CATEGORY_BEST.does_meet_non_id_filters = 0 + AND IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0 AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; END IF; @@ -852,12 +1074,15 @@ BEGIN DELETE t_COMMAND_CATEGORY FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category + LEFT JOIN demo.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON DOG_USER_LINK.id_user = t_USER.id_user WHERE ( a_require_all_id_search_filters_met = 1 AND ( IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0 OR t_COMMAND_CATEGORY.does_meet_id_filters = 0 + OR IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) ) OR ( @@ -865,103 +1090,30 @@ BEGIN AND ( IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0 OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ) OR ( a_require_any_id_search_filters_met = 1 AND IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0 AND t_COMMAND_CATEGORY.does_meet_id_filters = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 ) OR ( a_require_any_non_id_search_filters_met = 1 AND IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0 AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 ) ; END IF; IF a_debug = 1 THEN SELECT 'After filter Commands and Categories'; - SELECT * FROM tmp_Command_Category_Calc_Command; - SELECT * FROM tmp_Command_Calc_Command; + -- SELECT * FROM tmp_Command_Category_Calc_Command; + -- SELECT * FROM tmp_Command_Calc_Command; END IF; - - -- 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_Command t_ME - WHERE t_ME.id_type <> v_id_type_error_no_permission - ; - INSERT INTO tmp_Msg_Error_Calc_Command ( - 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 Commands.' - ) - ; - 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'; SELECT * FROM tmp_Command_Category_Calc_Command; @@ -1069,6 +1221,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Command; DROP TEMPORARY TABLE IF EXISTS tmp_Command_Calc_Command; DROP TEMPORARY TABLE IF EXISTS tmp_Command_Category_Calc_Command; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Command; IF a_debug = 1 THEN CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); diff --git a/static/MySQL/71104_p_dog_get_many_command.sql b/static/MySQL/71104_p_dog_get_many_command.sql index 41dbde6..6f0072f 100644 --- a/static/MySQL/71104_p_dog_get_many_command.sql +++ b/static/MySQL/71104_p_dog_get_many_command.sql @@ -16,6 +16,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_command ( , IN a_names_command TEXT , IN a_hand_signal_default_descriptions_command TEXT , IN a_notes_command 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 @@ -126,6 +131,11 @@ BEGIN , a_names_command , a_hand_signal_default_descriptions_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_any_id_search_filters_met , a_require_all_non_id_search_filters_met @@ -272,6 +282,11 @@ BEGIN , a_names_command -- a_names_command , a_hand_signal_default_descriptions_command -- a_hand_signal_default_descriptions_command , 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 , 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 @@ -294,6 +309,11 @@ BEGIN , a_names_command -- a_names_command , a_hand_signal_default_descriptions_command -- a_hand_signal_default_descriptions_command , 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 , 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 @@ -463,6 +483,11 @@ CALL fetchmetrics.p_dog_get_many_command ( , '' -- a_names_command , '' -- a_hand_signal_default_descriptions_command , '' -- a_notes_command + , 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 @@ -485,6 +510,11 @@ CALL demo.p_dog_get_many_command ( , 'pat,point' -- a_names_command , 'pat,point' -- a_hand_signal_default_descriptions_command , 'pat,point' -- a_notes_command + , 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 diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index 75a3a89..9108cf4 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_location ( , 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 @@ -26,9 +31,10 @@ BEGIN DECLARE v_has_filter_location_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_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -83,7 +89,7 @@ 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); @@ -109,6 +115,11 @@ BEGIN , a_get_inactive_location , a_ids_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_any_id_search_filters_met , a_require_all_non_id_search_filters_met @@ -120,7 +131,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; @@ -130,6 +141,24 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Location; -- DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Location; + + CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Location ( + 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 + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); CREATE TEMPORARY TABLE tmp_Location_Calc_Location ( id_location INT NOT NULL @@ -171,6 +200,163 @@ BEGIN SET v_has_filter_location_id = CASE WHEN a_ids_location <> '' THEN 1 ELSE 0 END; SET v_has_filter_location_name = CASE WHEN a_names_location <> '' 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) + 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_Location t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Calc_Location ( + 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 Locations.' + ) + ; + 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 + , 0 -- get_all_user + , 0 -- 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 + , a_debug -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- 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 + , a_debug -- a_debug + ); + + INSERT INTO tmp_Calc_User_Access_Calc_Command ( + 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 + , 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.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 = v_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Calc_User_Access_Calc_Command; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access ( + a_guid + , 0 -- a_debug + ); + -- Locations IF v_has_filter_location_id = 1 THEN CALL fetchmetrics.p_core_split(a_guid, a_ids_location, ',', a_debug); @@ -459,81 +645,6 @@ BEGIN */ - -- 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_Location t_ME - WHERE t_ME.id_type <> v_id_type_error_no_permission - ; - INSERT INTO tmp_Msg_Error_Calc_Location ( - 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 Locations.' - ) - ; - 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'; SELECT * FROM tmp_Location_Calc_Location; @@ -612,6 +723,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Location; -- DROP TEMPORARY TABLE IF EXISTS tmp_Location_Link_Calc_Location; DROP TEMPORARY TABLE IF EXISTS tmp_Location_Calc_Location; + DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Location; IF a_debug = 1 THEN CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index 6cc8465..e9d4835 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -856,6 +856,24 @@ VALUES ) ; +-- Dog User Link +INSERT INTO fetchmetrics.DOG_Dog_User_Link ( + id_dog + , id_user + , id_access_level + , active +) +SELECT + DOG.id_dog + , USERS.id_user + , ROLE_PERMISSION_LINK.id_access_level + , 1 +FROM fetchmetrics.DOG_User USERS +INNER JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK ON USERS.id_user = USER_ROLE_LINK.id_user +INNER JOIN fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role +CROSS JOIN fetchmetrics.DOG_Dog DOG +; + INSERT INTO fetchmetrics.DOG_Breed ( code , name diff --git a/static/docs/fetch-metrics-social-media-post-template.xcf b/static/docs/fetch-metrics-social-media-post-template.xcf new file mode 100644 index 0000000000000000000000000000000000000000..008542e39cae75e0008ee385435c6512e0ef3758 GIT binary patch literal 352118 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

QHXGiPx-xI_Bd5CUv+6|U62_~UGefp3 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%0DWfk%IlCJ=m6``P^Pr(`X6_RP&S}1<&;5 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 literal 0 HcmV?d00001 diff --git a/static/images/stick-man-walking-up-stairs.png b/static/images/stick-man-walking-up-stairs.png new file mode 100644 index 0000000000000000000000000000000000000000..e72890c159ef60466ace948378a821b8e9ea9313 GIT binary patch literal 59820 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%0ADn=na5-a~Ym)mg zn(itfB=jJ=QJPgL)Km-zk%7vkkl7h+^kukB{-8IUkW5SBcRUL=^dK)vc z%ihi|#VoVz)VOPO*)d6h{y2{jmwxeFIcZc~9wfLX)vp~u8@>WAZm)z|x{OIAIM8UM>S<+AHufqvC$ZA)$uHW8_O-u1(DGLtFi>smPYm zFzD6*J@Q_KhE9)BnZP!SQgZ#Sy`qU3v#sgHk@12*AHtTLE+hNJb1`*O0{$`RoC1zb z&(c}qs zFQ}$0*6N!{@$Np4mmlWlCYaD(;$=dzl*Lsouat~v#O0d&p?vnM_l({JkQe}8N`(E1 z`^YC6r6nBC;m2{D$HSAnd$oELKI-rij)mT8{DOjYM4-HSE7qipn~pDbuB!<*HFn*L z5=~z-d*(b|-fXTpIAL4#z19vZ?ZRj#hW|Q^82)9fb6xwF`vh-%Zm@u}{CJL{>-Ud) zOR6u^$E0>LCE)e#=H})xAo8_bbfz3x&VX8WBg6?tD>Gf* zZ}t>mRpxiDD(L#NA?1nT4n6@x6ILN3D(pQt4vscsa4<;mH#`uskm2yn zfgT`zkaplt<97n{%;CM=FlJ9)N$F>0fB!S5pK{U@b`ACw@jG?e|F*@15*tu~YYhA` zq_hhtEn^eJ(0gT7yXtThAwTllw!;bknDcCXJzxnC8BP_n%a*7x=wrsw4SB`I8OWJ4 zx+K%`^7i*Sv*xzR@wV*>844H{#=#Nk&vA{`sLe}QgQGawbhWG3IX!xDL%^KS;?nrR zUaX^Hl##>@gXKO{Ie|u#K%`~~qO%QGFTSatG|HS(pAgzwk;6JYyp?u zzK1)hX2+TSt4o98Yy9;*u#4PTUrI4Hsr=LT;*w5c5B|dg+!(a=%Pc&b`mh@MsEf+Z zTG)0-!wih~nYsnWTvCzE7}Xj0^QqWWOEgfl*xu6f-1>Cj1wZ(X@?`V!!jCnr7o8D;Ba2^T9Fi{c9_CCj)IG916>R78 zI8Kh~@N-+pXh^p{NO~qD@4d5k^*1~s(oQ!*LG@z{$NYk-D zz|Ikb-x>RGgZDm!zZsY{Tt7CJ|7^X#V%Zu<7eHD2<@t=mTolRzEx5eEjv-rQ*GvqN z(~Ro&M@0gWUdkb9S(p-U%b;#wZ!L5-0iZ&u`$utRf4^N)Muk^BdbgoHAul5nOAG+} z8?im}*>7?9y$f2DuxV0^(lnwL`-#q8>=WDRF=`rG@hRB}ZYz)zqYi?;d6=X1iKsh6 zq33e4lh|JAFlMVwX3Fl>t8t#9u#S%6%ddNvjTL9^kcda!;)Jua9OKR_0BX2L#Cj(O z_$U-@9{9j$(J1}CXP4))AeQI?bsN)yQ@_j5#o%L$h?*`2Yz$X#8FVyupir)_Hd6VK zKlv1HPNyI9paozjKpq~3YMTb!hpDSj7>a^xFg+B_-ijWq2ePHX|Is&!h}R6+O4Z2^ zhwGf`LeEn&`nP)lj+vO5sf;YMg>J?rWcki0f+pGD>SNX1?fYVM*EjB-5xgGtBJ}j%sQSo{-K^x3wL@04%n?W!XS?Y z1uDisHZ_-Or(8262bRJynkjDHB8Ki75f#+{bXtDXrX)yH?e6RAqi&2e5?MvvwqP|@ z15^=3_YrvhkjADaTDou;tRY0d(J}kTGyi>K<1NG#YeUP=vv^YvX7YIk3GouQT4wX< zYme-ryy9eY$;P1AUS~!96*1a4)FZGw5KYiPti+leEy+aI--jTlam6Zb>Z7i`c_n!Ywp*J7*|9}N9@~ZTwzlTp;6Z>>SGK0sO2W?rHycyaht}LI zbYv%zE`>sbd>c1zOjoHkcztvOjH??x>I~|tGzcGn$Bf8T=k>Y38{)ieHB3#!rdC0H zG!n%`Pdq$rr+Ugm?Jc=(@nFTM2PWeH`|2ZF&km~|i&I%p%ZHA^OIuxG!k=-zN0}jt~VUC4|iAFa3CpE9F@MO1-edps8#Fn{j{mFGI zt3q|j=0!dlapz7w5LP(M3^-wZa-O*HUQA*!!uska)ghuxy%iQlGo4ZWutTzeKv!;` zLiaBZ#K%N?&zQ4*G3R-rLyOKNV>0*3^pAj@wXl zb35j|RTM`12%*yK~`zFmD(NRb*ddFw0(0{Y;FF-gshr91vFSlzzj^u${`yCmeH4o?o^(@XI4gcvS~nd;u_~t{)nEVoDQjGa zOHzb>Pg`bvUwNV>TAZ9`a;N{SR}?&V``d zolw`iuDxk3B9#yF78g`xPcr_8IHji2J`$OWaOdA5kuiQbwU}`G(HAKVi#?8qbS^t4 zNk=UFYeAYaPGGho>_zpo+4%L(wDlM~d`INEt%z6iJYq`jOy@M!}g~drLmwuWti6Rpr~l#awe>p(F!L^%Tk8h zbW}3x8so`Ify6h0Yis67MC*~uuP;pRupgYKHeW>P&8nDlaVE6HhK79zqgDG)k2{$U zx<)@+|Dg5F3AyynH3fnmAw`j)zq<&&EXXvWVa`x;i>-+V$Vl%bX5HgN&d9=evU`L~ zRCu~SViJkIf{PzHWABn>M1SA$sKY3&p?1)7bc@H&Z)L=7VW3YUG66?Ue68n}s=Bw2 z=cM4{|B#kuICzamf|(hwPrmb=r`|V312ok@3S(iaXd={vfyb&x;e8Z^%N6HVkxAB* z$c7jg)8GaX+4{|R#oMX*;!RPgz?DF9c0#YBqQW2vzozJCZxD4+6n2favP{X)b~7(B z+fOs9!=Km?Ghq|N@nmO43776);<%C94@@>cuV&5*9WKTiVUi`z6)%lr;Vb5->g$O= zI|Pv%MqQsbwFU%e#{7tol$10%bjUE*qyhVmSw?xIeDZA2N!R}^gJn)`+Blfh?HY{) zftH>t>4$l&2Vs(ss~I)^cDRe}M_Kd?Y5uU${;dPE9E9K2`GPES`QBOqoR7i*QEUuyT0(=mNxxEOHDJlTp-p_SxhQbgU+~cc3a{Go2iV5vh zpe$?v=A9l$;Y+wLCnM|AR>G!3u^=KM0w+W0G=zVaTmvRUUI{GF_1=>Lv4Ojo6FF5vkCiLJju+I!r;97k>ZmEO9ddzi_yYXODA<>+gA z;W6d}7drRuspqGNke+}Es1hAU*!zU6dOAbki?z~E!#l}ym=L7#D1c>Mq(MB<9c zXc{zyJMnwMl09|!$ocxyDFI>O1_Y9Z(qa3gmLg^!J3LE>uV$#et}Y(pa2_Bi)!|BZ z0YO2)#nht^<)6OKwdM$deA1*(AR$m6nlKt~k-We>`N*o|I&aH$vu7d^>4A_+Z1ImO z2dcfjG(((1`MP}8y-UPpNQc!yD=-NpG8=1a9pakVQP@>PC$0Ub>%&#k(M<*Q9UDi- z-Dr+<164{+RyH2}Mt*v39F%vfaUDcN#LeBl{ibVb@(c!s?Zkm1yQ;{{Drn*1ZGbQE z)G*>;gx78YBDJMU`VdLnCYhe}2`A+?JK&-2=I}3yQH{@@T_8&Xwd$U58{~~GReal-World Implementation Success -

James Patterson, a certified canine behaviourist in Birmingham, implemented Fetch Metrics six months ago:

+

James, a certified canine behaviourist in Warwickshire, implemented Fetch Metrics six months ago:

"Before Fetch Metrics, I was spending 2-3 hours per week just answering client questions about techniques. The command dictionary has eliminated 90% of those calls. More importantly, my dogs are achieving their training goals 3 weeks faster on average because owners can practice correctly at home." diff --git a/todo.txt b/todo.txt index 2bd532c..20681bc 100644 --- a/todo.txt +++ b/todo.txt @@ -6,6 +6,7 @@ Fix: - Dogs missing from Assessments table? - DB field id_user_created_by must not be null - User section - either separate or merge into dog section +- Blog - article tags, categories Features: