diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index 5ac1675..bc6fb18 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -35,6 +35,8 @@ BEGIN 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 @@ -91,7 +93,9 @@ BEGIN SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.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 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); - + SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1); + SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view); + CALL demo.p_core_validate_guid ( a_guid ); SET a_id_user := IFNULL(a_id_user, 0); @@ -154,6 +158,7 @@ BEGIN , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT @@ -161,6 +166,8 @@ BEGIN CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog ( id_dog 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 ); @@ -273,8 +280,8 @@ BEGIN IF a_debug = 1 THEN SELECT a_guid -- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -286,14 +293,14 @@ 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( a_guid-- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -305,7 +312,7 @@ 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 ); INSERT INTO tmp_Calc_User_Access_Calc_Dog ( @@ -319,6 +326,7 @@ BEGIN , can_view , can_edit , can_admin + , active , does_meet_id_filters , does_meet_non_id_filters ) @@ -333,11 +341,11 @@ BEGIN , 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 demo.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid - LIMIT 1 ; IF a_debug = 1 THEN @@ -473,6 +481,8 @@ BEGIN ELSE INSERT INTO tmp_Dog_Calc_Dog ( id_dog + , exists_valid_link + , id_user , does_meet_id_filters , does_meet_non_id_filters ) @@ -507,9 +517,55 @@ BEGIN FROM Dog_Name_Filter DOG_NAME_FILTER ) DOG_COMBINED GROUP BY DOG_COMBINED.id_dog + ) + , Dog_Access AS ( + SELECT + DOG.id_dog + , 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 DOG.id_dog + 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_dog + , t_USER.id_user + FROM demo.DOG_Dog DOG + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK + ON DOG.id_dog = DOG_USER_LINK.id_dog + AND ( + ( + a_get_inactive_dog = 1 + AND a_get_inactive_user = 1 + ) + OR DOG_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER + ON DOG_USER_LINK.id_user = t_USER.id_user + AND ( + a_get_inactive_user = 1 + OR t_USER.active = 1 + ) + LEFT JOIN demo.DOG_Access_Level ACCESS_LEVEL + ON DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 ) SELECT DOG.id_dog + , IFNULL(DOG_ACCESS.exists_valid_link, 0) AS exists_valid_link + , DOG_ACCESS.id_user , CASE WHEN v_has_filter_dog_id = 0 OR IFNULL(DOG_FILTERS.does_meet_id_filter, 0) = 1 @@ -522,8 +578,9 @@ BEGIN 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 + LEFT JOIN Dog_Access DOG_ACCESS + ON DOG.id_dog = DOG_ACCESS.id_dog + AND DOG_ACCESS.index_link_in_dog = 1 WHERE ( a_get_all_dog = 1 @@ -536,10 +593,7 @@ BEGIN AND DOG_FILTERS.does_meet_name_filter = 1 ) ) - AND ( - v_is_super_user = 1 - OR t_USER.id_user IS NOT NULL - ) + AND IFNULL(DOG_ACCESS.exists_valid_link, 0) = 1 AND ( a_get_inactive_dog = 1 OR DOG.active = 1 @@ -558,34 +612,100 @@ BEGIN -- 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 + /* + WITH + Dog_Access AS ( + SELECT + DOG.id_dog + , 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 can_user_access_dog + , ROW_NUMBER() OVER ( + PARTITION BY DOG.id_dog + 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 + ) AS index_link_in_dog + , t_USER.does_meet_id_filters AS does_user_meet_id_filters + , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters + FROM demo.DOG_Dog DOG + LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK + ON DOG.id_dog = DOG_USER_LINK.id_dog + AND ( + ( + a_get_inactive_dog = 1 + AND a_get_inactive_user = 1 + ) + OR DOG_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER + ON DOG_USER_LINK.id_user = t_USER.id_user + AND ( + a_get_inactive_user = 1 + OR t_USER.active = 1 + ) + LEFT JOIN demo.DOG_Access_Level ACCESS_LEVEL + ON DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ) + */ 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 + /* + LEFT JOIN Dog_Access DOG_ACCESS + ON t_DOG.id_dog = DOG_ACCESS.id_dog + AND DOG_ACCESS.index_link_in_dog = 1 + */ + -- 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 t_DOG.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 ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0 + AND 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 ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) ) ) OR ( - a_require_any_id_search_filters_met = 1 + 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 + AND ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 + ) ) OR ( - a_require_any_non_id_search_filters_met = 1 + 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 + AND ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) ) ; END IF; @@ -667,6 +787,9 @@ END // DELIMITER ; +/* + + CALL demo.p_dog_calc_dog ( 'slips ' -- a_guid , 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user @@ -688,6 +811,25 @@ CALL demo.p_dog_calc_dog ( ); +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 + , '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 + , 1 -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug +); SELECT * FROM demo.DOG_Dog_Temp @@ -698,3 +840,4 @@ CALL demo.p_dog_clear_calc_dog ( , 1 -- debug ); +*/ \ No newline at end of file diff --git a/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql index 3a6965d..86df8bf 100644 --- a/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql +++ b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql @@ -1,8 +1,8 @@ USE fetchmetrics; -DROP TABLE IF EXISTS demo.DOG_Calc_User_Temp; --- DROP TABLE IF EXISTS demo.DOG_Calc_User_Access_Temp; +DROP TABLE IF EXISTS fetchmetrics.DOG_Calc_User_Temp; +-- DROP TABLE IF EXISTS fetchmetrics.DOG_Calc_User_Access_Temp; SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES @@ -22,6 +22,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Calc_User_Access_Temp ( , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT diff --git a/static/MySQL/31103_tri_DOG_Command_Category_User_Link.sql b/static/MySQL/31103_tri_DOG_Command_Category_User_Link.sql index 9c59834..55f1034 100644 --- a/static/MySQL/31103_tri_DOG_Command_Category_User_Link.sql +++ b/static/MySQL/31103_tri_DOG_Command_Category_User_Link.sql @@ -30,7 +30,7 @@ BEGIN , value_new , id_change_set ) - -- Changed dog + -- Changed command category SELECT NEW.id_link, 'id_command_category', CONVERT(OLD.id_command_category, CHAR), CONVERT(NEW.id_command_category, CHAR), NEW.id_change_set WHERE NOT OLD.id_command_category <=> NEW.id_command_category UNION diff --git a/static/MySQL/31203_tri_DOG_Location_User_Link.sql b/static/MySQL/31203_tri_DOG_Location_User_Link.sql index 9100a93..dbf6e7d 100644 --- a/static/MySQL/31203_tri_DOG_Location_User_Link.sql +++ b/static/MySQL/31203_tri_DOG_Location_User_Link.sql @@ -30,7 +30,7 @@ BEGIN , value_new , id_change_set ) - -- Changed dog + -- Changed location SELECT NEW.id_link, 'id_location', CONVERT(OLD.id_location, CHAR), CONVERT(NEW.id_location, CHAR), NEW.id_change_set WHERE NOT OLD.id_location <=> NEW.id_location UNION diff --git a/static/MySQL/70505_p_dog_get_many_company.sql b/static/MySQL/70505_p_dog_get_many_company.sql index 2133358..50c0b01 100644 --- a/static/MySQL/70505_p_dog_get_many_company.sql +++ b/static/MySQL/70505_p_dog_get_many_company.sql @@ -356,7 +356,7 @@ CALL fetchmetrics.p_dog_get_many_company ( ); -CALL demo.p_dog_get_many_company ( +CALL fetchmetrics.p_dog_get_many_company ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_company , 0 -- a_get_inactive_company diff --git a/static/MySQL/70518_p_dog_save_user.sql b/static/MySQL/70518_p_dog_save_user.sql index 15e6bcd..f8e4049 100644 --- a/static/MySQL/70518_p_dog_save_user.sql +++ b/static/MySQL/70518_p_dog_save_user.sql @@ -554,21 +554,21 @@ CALL fetchmetrics.p_dog_clear_calc_user_access( ); select * -from demo.DOG_User_Change_Set +from fetchmetrics.DOG_User_Change_Set ; select * -from demo.DOG_Role +from fetchmetrics.DOG_Role ; select * -from demo.DOG_Permission +from fetchmetrics.DOG_Permission ; --- INSERT INTO demo.DOG_User_Change_Set (comment ) VALUES ( 'Client role permissions' ); +-- INSERT INTO fetchmetrics.DOG_User_Change_Set (comment ) VALUES ( 'Client role permissions' ); -UPDATE demo.DOG_Role_Permission_Link ROLE_PERMISSION_LINK +UPDATE fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK SET - ROLE_PERMISSION_LINK.id_change_set = (SELECT UCS.id_change_set FROM demo.DOG_User_Change_Set UCS ORDER BY UCS.id_change_set DESC LIMIT 1) + ROLE_PERMISSION_LINK.id_change_set = (SELECT UCS.id_change_set FROM fetchmetrics.DOG_User_Change_Set UCS ORDER BY UCS.id_change_set DESC LIMIT 1) , ROLE_PERMISSION_LINK.id_access_level = 2 WHERE ROLE_PERMISSION_LINK.id_permission = 15 @@ -581,12 +581,12 @@ SELECT , ROLE.name , PERMISSION.name , ACCESS_LEVEL.name -FROM demo.DOG_User USERS -INNER JOIN demo.DOG_User_Role_Link URL ON USERS.id_user = URL.id_user -INNER JOIN demo.DOG_Role ROLE ON URL.id_role = ROLE.id_role -INNER JOIN demo.DOG_Role_Permission_Link RPL ON URL.id_role = RPL.id_role -INNER JOIN demo.DOG_Permission PERMISSION ON RPL.id_permission = PERMISSION.id_permission -INNER JOIN demo.DOG_Access_Level ACCESS_LEVEL ON RPL.id_access_level = ACCESS_LEVEL.id_access_level +FROM fetchmetrics.DOG_User USERS +INNER JOIN fetchmetrics.DOG_User_Role_Link URL ON USERS.id_user = URL.id_user +INNER JOIN fetchmetrics.DOG_Role ROLE ON URL.id_role = ROLE.id_role +INNER JOIN fetchmetrics.DOG_Role_Permission_Link RPL ON URL.id_role = RPL.id_role +INNER JOIN fetchmetrics.DOG_Permission PERMISSION ON RPL.id_permission = PERMISSION.id_permission +INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON RPL.id_access_level = ACCESS_LEVEL.id_access_level ; */ diff --git a/static/MySQL/70520_p_dog_get_many_role.sql b/static/MySQL/70520_p_dog_get_many_role.sql index 22fce43..b2f32ec 100644 --- a/static/MySQL/70520_p_dog_get_many_role.sql +++ b/static/MySQL/70520_p_dog_get_many_role.sql @@ -355,7 +355,7 @@ CALL fetchmetrics.p_dog_get_many_role ( ); -CALL demo.p_dog_get_many_role ( +CALL fetchmetrics.p_dog_get_many_role ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_role , 0 -- a_get_inactive_role diff --git a/static/MySQL/70530_p_dog_calc_user_access.sql b/static/MySQL/70530_p_dog_calc_user_access.sql index 09a141b..cf45f2c 100644 --- a/static/MySQL/70530_p_dog_calc_user_access.sql +++ b/static/MySQL/70530_p_dog_calc_user_access.sql @@ -190,6 +190,7 @@ BEGIN , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT @@ -559,6 +560,7 @@ BEGIN , id_permission_required , priority_access_level_required , is_super_user + , active /* , priority_access_level_user , can_view @@ -588,7 +590,7 @@ BEGIN , User_Email_Filter AS ( SELECT USER.id_user FROM tmp_Split_Email_Calc_User_Access t_SPLIT_EMAIL - INNER JOIN demo.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%') + INNER JOIN fetchmetrics.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%') WHERE IFNULL(t_SPLIT_EMAIL.substring, '') <> '' ) , User_Filters AS ( @@ -639,6 +641,7 @@ BEGIN , v_id_permission_required -- id_permission_required , v_priority_access_level_required -- priority_access_level_required , IFNULL(USER.is_super_user, 0) AS is_super_user + , active , CASE WHEN ( @@ -824,6 +827,7 @@ BEGIN , can_view , can_edit , can_admin + , active , does_meet_id_filters , does_meet_non_id_filters @@ -840,6 +844,7 @@ BEGIN , t_CALC_USER_ACCESS.can_view , t_CALC_USER_ACCESS.can_edit , t_CALC_USER_ACCESS.can_admin + , t_CALC_USER_ACCESS.active , t_CALC_USER_ACCESS.does_meet_id_filters , t_CALC_USER_ACCESS.does_meet_non_id_filters diff --git a/static/MySQL/71001_p_dog_calc_dog.sql b/static/MySQL/71001_p_dog_calc_dog.sql index 3d215e3..73889a1 100644 --- a/static/MySQL/71001_p_dog_calc_dog.sql +++ b/static/MySQL/71001_p_dog_calc_dog.sql @@ -35,6 +35,8 @@ BEGIN 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 @@ -91,7 +93,9 @@ BEGIN 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 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 ); SET a_id_user := IFNULL(a_id_user, 0); @@ -154,6 +158,7 @@ BEGIN , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT @@ -161,6 +166,8 @@ BEGIN CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog ( id_dog 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 ); @@ -273,8 +280,8 @@ BEGIN IF a_debug = 1 THEN SELECT a_guid -- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -286,14 +293,14 @@ 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 fetchmetrics.p_dog_calc_user_access( a_guid-- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -305,7 +312,7 @@ 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 ); INSERT INTO tmp_Calc_User_Access_Calc_Dog ( @@ -319,6 +326,7 @@ BEGIN , can_view , can_edit , can_admin + , active , does_meet_id_filters , does_meet_non_id_filters ) @@ -333,11 +341,11 @@ BEGIN , 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 - LIMIT 1 ; IF a_debug = 1 THEN @@ -473,6 +481,8 @@ BEGIN ELSE INSERT INTO tmp_Dog_Calc_Dog ( id_dog + , exists_valid_link + , id_user , does_meet_id_filters , does_meet_non_id_filters ) @@ -507,9 +517,55 @@ BEGIN FROM Dog_Name_Filter DOG_NAME_FILTER ) DOG_COMBINED GROUP BY DOG_COMBINED.id_dog + ) + , Dog_Access AS ( + SELECT + DOG.id_dog + , 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 DOG.id_dog + 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_dog + , t_USER.id_user + FROM fetchmetrics.DOG_Dog DOG + LEFT JOIN fetchmetrics.DOG_Dog_User_Link DOG_USER_LINK + ON DOG.id_dog = DOG_USER_LINK.id_dog + AND ( + ( + a_get_inactive_dog = 1 + AND a_get_inactive_user = 1 + ) + OR DOG_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER + ON DOG_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 DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 ) SELECT DOG.id_dog + , IFNULL(DOG_ACCESS.exists_valid_link, 0) AS exists_valid_link + , DOG_ACCESS.id_user , CASE WHEN v_has_filter_dog_id = 0 OR IFNULL(DOG_FILTERS.does_meet_id_filter, 0) = 1 @@ -522,8 +578,9 @@ 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 + LEFT JOIN Dog_Access DOG_ACCESS + ON DOG.id_dog = DOG_ACCESS.id_dog + AND DOG_ACCESS.index_link_in_dog = 1 WHERE ( a_get_all_dog = 1 @@ -536,10 +593,7 @@ BEGIN AND DOG_FILTERS.does_meet_name_filter = 1 ) ) - AND ( - v_is_super_user = 1 - OR t_USER.id_user IS NOT NULL - ) + AND IFNULL(DOG_ACCESS.exists_valid_link, 0) = 1 AND ( a_get_inactive_dog = 1 OR DOG.active = 1 @@ -558,34 +612,100 @@ BEGIN -- Filter records 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 + /* + WITH + Dog_Access AS ( + SELECT + DOG.id_dog + , 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 can_user_access_dog + , ROW_NUMBER() OVER ( + PARTITION BY DOG.id_dog + 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 + ) AS index_link_in_dog + , t_USER.does_meet_id_filters AS does_user_meet_id_filters + , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters + FROM fetchmetrics.DOG_Dog DOG + LEFT JOIN fetchmetrics.DOG_Dog_User_Link DOG_USER_LINK + ON DOG.id_dog = DOG_USER_LINK.id_dog + AND ( + ( + a_get_inactive_dog = 1 + AND a_get_inactive_user = 1 + ) + OR DOG_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER + ON DOG_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 DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ) + */ 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 + /* + LEFT JOIN Dog_Access DOG_ACCESS + ON t_DOG.id_dog = DOG_ACCESS.id_dog + AND DOG_ACCESS.index_link_in_dog = 1 + */ + -- LEFT JOIN fetchmetrics.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 t_DOG.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 ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0 + AND 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 ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) ) ) OR ( - a_require_any_id_search_filters_met = 1 + 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 + AND ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_id_filters, 0) = 0 + ) ) OR ( - a_require_any_non_id_search_filters_met = 1 + 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 + AND ( + t_DOG.exists_valid_link = 0 + -- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0 + AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0 + ) ) ; END IF; diff --git a/static/MySQL/71001_p_dog_get_many_dog.sql b/static/MySQL/71001_p_dog_get_many_dog.sql index 0994df0..4ebc691 100644 --- a/static/MySQL/71001_p_dog_get_many_dog.sql +++ b/static/MySQL/71001_p_dog_get_many_dog.sql @@ -382,7 +382,7 @@ CALL fetchmetrics.p_dog_get_many_dog ( , 1 -- a_debug ); -CALL demo.p_dog_get_many_dog ( +CALL fetchmetrics.p_dog_get_many_dog ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_dog , 0 -- a_get_inactive_dog diff --git a/static/MySQL/71003_p_dog_save_command.sql b/static/MySQL/71003_p_dog_save_command.sql index 80757a4..f3f1130 100644 --- a/static/MySQL/71003_p_dog_save_command.sql +++ b/static/MySQL/71003_p_dog_save_command.sql @@ -656,14 +656,14 @@ from fetchmetrics.DOG_Command_Temp select COUNT(*) from fetchmetrics.DOG_Command_Temp ; -INSERT INTO demo.DOG_Dog_Change_Set ( comment, id_user_updated_last_by ) +INSERT INTO fetchmetrics.DOG_Dog_Change_Set ( comment, id_user_updated_last_by ) VALUES ( 'Nullify empty hand_signal_default_descriptions.', 1 ) ; -UPDATE demo.DOG_Command C +UPDATE fetchmetrics.DOG_Command C SET C.hand_signal_default_description = NULL - , C.id_change_set = (SELECT DCS.id_change_set FROM demo.DOG_Dog_Change_Set DCS ORDER BY DCS.id_change_set DESC LIMIT 1) + , C.id_change_set = (SELECT DCS.id_change_set FROM fetchmetrics.DOG_Dog_Change_Set DCS ORDER BY DCS.id_change_set DESC LIMIT 1) WHERE C.hand_signal_default_description = '' ; @@ -672,9 +672,9 @@ WHERE C.hand_signal_default_description = '' -DELETE FROM demo.DOG_Command C +DELETE FROM fetchmetrics.DOG_Command C WHERE C.id_command > 260; -DELETE FROM demo.DOG_Command_Temp; +DELETE FROM fetchmetrics.DOG_Command_Temp; SELECT * /* CC.name diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index 81df099..1970e26 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -45,6 +45,7 @@ BEGIN 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_view INT; DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION @@ -101,7 +102,8 @@ BEGIN 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_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_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 ); @@ -153,7 +155,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; @@ -179,6 +181,7 @@ BEGIN , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT @@ -186,6 +189,8 @@ BEGIN CREATE TEMPORARY TABLE tmp_Command_Category_Calc_Command ( id_command_category 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 ); @@ -322,8 +327,8 @@ BEGIN IF a_debug = 1 THEN SELECT a_guid -- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -341,8 +346,8 @@ BEGIN CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -368,6 +373,7 @@ BEGIN , can_view , can_edit , can_admin + , active , does_meet_id_filters , does_meet_non_id_filters ) @@ -382,11 +388,11 @@ BEGIN , 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 = v_guid - LIMIT 1 + WHERE CALC_USER_T.GUID = a_guid ; IF a_debug = 1 THEN @@ -516,6 +522,50 @@ BEGIN FROM Command_Category_Name_Filter COMMAND_CATEGORY_NAME_FILTER ) COMMAND_CATEGORY_COMBINED GROUP BY COMMAND_CATEGORY_COMBINED.id_command_category + ) + , Command_Category_Access AS ( + SELECT + COMMAND_CATEGORY.id_command_category + , 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 COMMAND_CATEGORY.id_command_category + 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_command_category + , t_USER.id_user + FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY + LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK + ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + AND ( + ( + a_get_inactive_command_category = 1 + AND a_get_inactive_user = 1 + ) + OR COMMAND_CATEGORY_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER + ON COMMAND_CATEGORY_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 COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 ) SELECT COMMAND_CATEGORY.id_command_category @@ -531,8 +581,9 @@ 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 + LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS + ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category + AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1 WHERE ( a_get_all_command_category = 1 @@ -545,10 +596,7 @@ 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 IFNULL(COMMAND_CATEGORY_ACCESS.exists_valid_link, 0) = 1 AND ( a_get_inactive_command_category = 1 OR COMMAND_CATEGORY.active = 1 @@ -776,10 +824,26 @@ 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 + LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK + ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + AND ( + ( + a_get_inactive_command_category = 1 + AND a_get_inactive_user = 1 + ) + OR COMMAND_CATEGORY_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER + ON COMMAND_CATEGORY_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 COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 WHERE - ( + ( a_get_all_command = 1 OR ( v_has_filter_command_id = 1 @@ -798,10 +862,13 @@ BEGIN AND COMMAND_FILTERS.does_meet_notes_filter = 1 ) ) - AND ( - v_is_super_user = 1 - OR t_USER.id_user IS NOT NULL - ) + AND ( + 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 + ) + ) AND ( a_get_inactive_command = 1 OR COMMAND.active = 1 @@ -832,7 +899,7 @@ BEGIN , Command_Hand_Signal_Default_Description_Filter AS ( SELECT COMMAND.id_command FROM tmp_Split_Hand_Signal_Default_Description_Calc_Command t_SPLIT_HSDD - INNER JOIN demo.DOG_Command COMMAND ON COMMAND.hand_signal_default_description LIKE CONCAT('%', t_SPLIT_HSDD.substring, '%') + INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.hand_signal_default_description LIKE CONCAT('%', t_SPLIT_HSDD.substring, '%') WHERE t_SPLIT_HSDD.substring IS NOT NULL AND t_SPLIT_HSDD.substring <> '' @@ -840,7 +907,7 @@ BEGIN , Command_Notes_Filter AS ( SELECT COMMAND.id_command FROM tmp_Split_Notes_Calc_Command t_SPLIT_NOTES - INNER JOIN demo.DOG_Command COMMAND ON COMMAND.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') + INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') WHERE t_SPLIT_NOTES.substring IS NOT NULL AND t_SPLIT_NOTES.substring <> '' @@ -908,9 +975,25 @@ 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 + LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK + ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + AND ( + ( + a_get_inactive_command_category = 1 + AND a_get_inactive_user = 1 + ) + OR COMMAND_CATEGORY_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER + ON COMMAND_CATEGORY_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 COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + WHERE ( a_get_all_command = 1 OR ( @@ -932,7 +1015,10 @@ BEGIN ) AND ( v_is_super_user = 1 - OR t_USER.id_user IS NOT NULL + OR ( + t_USER.id_user IS NOT NULL + AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view + ) ) AND ( a_get_inactive_command = 1 @@ -982,8 +1068,8 @@ 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 + LEFT JOIN fetchmetrics.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_require_all_id_search_filters_met = 1 @@ -1017,7 +1103,7 @@ BEGIN IF a_debug = 1 THEN WITH - Category_And_Best_Command AS ( + Category_And_Best_Command AS ( SELECT t_COMMAND.id_command_category , MAX(IFNULL(t_COMMAND.does_meet_id_filters, 0)) AS does_meet_id_filters @@ -1025,18 +1111,61 @@ BEGIN FROM tmp_Command_Calc_Command t_COMMAND GROUP BY t_COMMAND.id_command_category ) + , Command_Category_Access AS ( + SELECT + COMMAND_CATEGORY.id_command_category + , 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 can_user_access_command_category + , ROW_NUMBER() OVER ( + PARTITION BY COMMAND_CATEGORY.id_command_category + 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 + ) AS index_link_in_command_category + , t_USER.does_meet_id_filters AS does_user_meet_id_filters + , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters + FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY + LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK + ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + AND ( + ( + a_get_inactive_command_category = 1 + AND a_get_inactive_user = 1 + ) + OR COMMAND_CATEGORY_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER + ON COMMAND_CATEGORY_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 COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ) 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 + LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS + ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category + AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1 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 IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0 ) ) OR ( @@ -1044,20 +1173,20 @@ 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 IFNULL(COMMAND_CATEGORY_ACCESS.does_user_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 + AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_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 + AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0 ) ; END IF; @@ -1071,18 +1200,61 @@ BEGIN FROM tmp_Command_Calc_Command t_COMMAND GROUP BY t_COMMAND.id_command_category ) - DELETE t_COMMAND_CATEGORY + , Command_Category_Access AS ( + SELECT + COMMAND_CATEGORY.id_command_category + , 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 can_user_access_command_category + , ROW_NUMBER() OVER ( + PARTITION BY COMMAND_CATEGORY.id_command_category + 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 + ) AS index_link_in_command_category + , t_USER.does_meet_id_filters AS does_user_meet_id_filters + , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters + FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY + LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK + ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category + AND ( + ( + a_get_inactive_command_category = 1 + AND a_get_inactive_user = 1 + ) + OR COMMAND_CATEGORY_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER + ON COMMAND_CATEGORY_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 COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ) + 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 + LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS + ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category + AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1 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 IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0 ) ) OR ( @@ -1090,20 +1262,20 @@ 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 IFNULL(COMMAND_CATEGORY_ACCESS.does_user_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 + AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_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 + AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0 ) ; END IF; @@ -1246,6 +1418,11 @@ CALL fetchmetrics.p_dog_calc_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 , 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 @@ -1267,6 +1444,11 @@ CALL fetchmetrics.p_dog_calc_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/71104_p_dog_get_many_command.sql b/static/MySQL/71104_p_dog_get_many_command.sql index 6f0072f..b1792be 100644 --- a/static/MySQL/71104_p_dog_get_many_command.sql +++ b/static/MySQL/71104_p_dog_get_many_command.sql @@ -498,7 +498,7 @@ CALL fetchmetrics.p_dog_get_many_command ( ); -CALL demo.p_dog_get_many_command ( +CALL fetchmetrics.p_dog_get_many_command ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_command_category , 0 -- a_get_inactive_command_category diff --git a/static/MySQL/71110_p_dog_save_dog_command_link.sql b/static/MySQL/71110_p_dog_save_dog_command_link.sql index c92ffae..678a4e9 100644 --- a/static/MySQL/71110_p_dog_save_dog_command_link.sql +++ b/static/MySQL/71110_p_dog_save_dog_command_link.sql @@ -233,7 +233,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN demo.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog + LEFT JOIN fetchmetrics.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog WHERE ISNULL(t_DOG_COMMAND_LINK.id_dog) OR ISNULL(DOG.id_dog) @@ -260,7 +260,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN demo.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command + LEFT JOIN fetchmetrics.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_DOG_COMMAND_LINK.id_command) OR ISNULL(COMMAND.id_command) diff --git a/static/MySQL/71111_p_dog_get_many_command_modality.sql b/static/MySQL/71111_p_dog_get_many_command_modality.sql index 323f3d1..3278a34 100644 --- a/static/MySQL/71111_p_dog_get_many_command_modality.sql +++ b/static/MySQL/71111_p_dog_get_many_command_modality.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_command_modality ( ); -CALL demo.p_dog_get_many_command_modality ( +CALL fetchmetrics.p_dog_get_many_command_modality ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_command_modality , 0 -- a_get_inactive_command_modality diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index 9108cf4..88a1ba7 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -35,6 +35,8 @@ BEGIN 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 @@ -91,7 +93,9 @@ BEGIN 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_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 ); @@ -131,7 +135,10 @@ BEGIN SELECT v_id_type_error_bad_data , v_id_type_error_no_permission + , v_id_access_level_view , v_id_permission_command_view + , v_priority_access_level_none + , v_priority_access_level_view , v_time_start ; END IF; @@ -155,6 +162,7 @@ BEGIN , can_view BIT , can_edit BIT , can_admin BIT + , active BIT , does_meet_id_filters BIT , does_meet_non_id_filters BIT @@ -242,15 +250,20 @@ BEGIN 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; + SELECT + v_can_view + , v_is_super_user + ; END IF; IF (v_can_view = 0) THEN @@ -281,8 +294,8 @@ BEGIN IF a_debug = 1 THEN SELECT a_guid -- guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -294,14 +307,14 @@ BEGIN , v_id_permission_command_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 fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid - , 0 -- get_all_user - , 0 -- get_inactive_user + , 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 @@ -313,10 +326,10 @@ BEGIN , v_id_permission_command_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , a_debug -- a_debug + , 0 -- a_debug ); - INSERT INTO tmp_Calc_User_Access_Calc_Command ( + INSERT INTO tmp_Calc_User_Access_Calc_Location ( id_user , id_role , id_permission_required @@ -327,6 +340,7 @@ BEGIN , can_view , can_edit , can_admin + , active , does_meet_id_filters , does_meet_non_id_filters ) @@ -341,15 +355,15 @@ BEGIN , 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 = v_guid - LIMIT 1 + WHERE CALC_USER_T.GUID = a_guid ; IF a_debug = 1 THEN - SELECT * FROM tmp_Calc_User_Access_Calc_Command; + SELECT * FROM tmp_Calc_User_Access_Calc_Location; END IF; CALL fetchmetrics.p_dog_clear_calc_user_access ( @@ -474,16 +488,34 @@ BEGIN LOCATIONS.id_location , CASE WHEN v_has_filter_location_id = 0 - OR LOCATIONS_FILTERS.does_meet_id_filter = 1 + OR IFNULL(LOCATIONS_FILTERS.does_meet_id_filter, 0) = 1 THEN 1 ELSE 0 END AS does_meet_id_filters , CASE WHEN ( v_has_filter_location_name = 0 ) - OR LOCATIONS_FILTERS.does_meet_name_filter = 1 + OR IFNULL(LOCATIONS_FILTERS.does_meet_name_filter, 0) = 1 THEN 1 ELSE 0 END AS does_meet_non_id_filters FROM fetchmetrics.DOG_Location LOCATIONS LEFT JOIN Location_Filters LOCATIONS_FILTERS ON LOCATIONS.id_location = LOCATIONS_FILTERS.id_location + LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK + ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location + AND ( + ( + a_get_inactive_location = 1 + AND a_get_inactive_user = 1 + ) + OR LOCATION_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER + ON LOCATION_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 LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 WHERE ( a_get_all_location = 1 @@ -496,6 +528,13 @@ BEGIN AND LOCATIONS_FILTERS.does_meet_name_filter = 1 ) ) + AND ( + 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 + ) + ) AND ( a_get_inactive_location = 1 OR LOCATIONS.active = 1 @@ -557,6 +596,24 @@ BEGIN THEN 1 ELSE 0 END AS does_meet_non_id_filters FROM fetchmetrics.DOG_Location LOCATIONS LEFT JOIN Location_Filters LOCATIONS_FILTERS ON LOCATIONS.id_location = LOCATIONS_FILTERS.id_location + LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK + ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location + AND ( + ( + a_get_inactive_location = 1 + AND a_get_inactive_user = 1 + ) + OR LOCATION_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER + ON LOCATION_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 LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 WHERE ( a_get_all_location = 1 @@ -569,6 +626,13 @@ BEGIN AND LOCATIONS_FILTERS.does_meet_name_filter = 1 ) ) + AND ( + 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 + ) + ) AND ( a_get_inactive_location = 1 OR LOCATIONS.active = 1 @@ -587,28 +651,88 @@ BEGIN -- Filter records IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Location 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 + WITH + Location_Access AS ( + SELECT + LOCATIONS.id_location + , 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 can_user_access_location + , ROW_NUMBER() OVER ( + PARTITION BY LOCATIONS.id_location + 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 + ) AS index_link_in_location + , t_USER.does_meet_id_filters AS does_user_meet_id_filters + , t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters + FROM fetchmetrics.DOG_Location LOCATIONS + LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK + ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location + AND ( + ( + a_get_inactive_location = 1 + AND a_get_inactive_user = 1 + ) + OR LOCATION_USER_LINK.active = 1 + ) + LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER + ON LOCATION_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 LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ) DELETE t_LOCATIONS FROM tmp_Location_Calc_Location t_LOCATIONS + LEFT JOIN Location_Access LOCATION_ACCESS ON t_LOCATIONS.id_location = LOCATION_ACCESS.id_location WHERE ( a_require_all_id_search_filters_met = 1 AND ( t_LOCATIONS.does_meet_id_filters = 0 + OR ( + IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0 + AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0 + ) ) ) OR ( a_require_all_non_id_search_filters_met = 1 AND ( t_LOCATIONS.does_meet_non_id_filters = 0 + OR ( + IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0 + AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0 + ) ) ) OR ( - a_require_any_id_search_filters_met = 1 + a_require_any_id_search_filters_met = 1 AND t_LOCATIONS.does_meet_id_filters = 0 + AND ( + IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0 + AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0 + ) ) OR ( - a_require_any_non_id_search_filters_met = 1 + a_require_any_non_id_search_filters_met = 1 AND t_LOCATIONS.does_meet_non_id_filters = 0 + AND ( + IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0 + AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0 + ) ) ; END IF; @@ -742,6 +866,11 @@ CALL fetchmetrics.p_dog_calc_location ( , 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 , 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 @@ -757,6 +886,11 @@ CALL fetchmetrics.p_dog_calc_location ( , 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 + , '' -- 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 diff --git a/static/MySQL/71200_p_dog_get_many_location.sql b/static/MySQL/71200_p_dog_get_many_location.sql index 2d992ff..b0f34c5 100644 --- a/static/MySQL/71200_p_dog_get_many_location.sql +++ b/static/MySQL/71200_p_dog_get_many_location.sql @@ -10,11 +10,15 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_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 , IN a_require_any_non_id_search_filters_met BIT - , IN a_output_LOCATIONS BIT , IN a_debug BIT ) BEGIN @@ -24,9 +28,12 @@ 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_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 @@ -82,9 +89,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); + SET a_id_user := IFNULL(a_id_user, 0); /* SET a_get_all_location := IFNULL(a_get_all_location, 0); @@ -98,7 +107,6 @@ BEGIN 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_output_LOCATIONS := IFNULL(a_output_LOCATIONS, 0); SET a_debug := IFNULL(a_debug, 0); IF a_debug = 1 THEN @@ -108,11 +116,15 @@ 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 , a_require_any_non_id_search_filters_met - , a_output_LOCATIONS , a_debug ; @@ -120,7 +132,7 @@ BEGIN v_id_type_error_bad_data , v_id_type_error_no_permission , v_guid - , v_id_permission_dog_view + , v_id_permission_command_view , v_time_start ; END IF; @@ -160,7 +172,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_id_permission_command_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug @@ -179,7 +191,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_id_permission_command_view -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug @@ -234,6 +246,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 @@ -250,6 +267,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 @@ -259,6 +281,7 @@ BEGIN ); IF a_debug = 1 THEN + SELECT 'After Location Calc'; SELECT COUNT(*) FROM fetchmetrics.DOG_Location_Temp; SELECT * FROM fetchmetrics.DOG_Location_Temp; END IF; @@ -287,6 +310,7 @@ BEGIN ; IF a_debug = 1 THEN + SELECT 'After pulling Locations from Staging table'; SELECT COUNT(*) FROM tmp_Location; SELECT * FROM tmp_Location; END IF; @@ -304,24 +328,22 @@ BEGIN -- Outputs -- Locations - IF a_output_LOCATIONS = 1 THEN - SELECT - t_LOCATIONS.id_location - , t_LOCATIONS.id_location_parent - , LOCATION_PARENT.name AS name_location_parent - , t_LOCATIONS.code - , t_LOCATIONS.name - , t_LOCATIONS.active + SELECT + t_LOCATIONS.id_location + , t_LOCATIONS.id_location_parent + , LOCATION_PARENT.name AS name_location_parent + , t_LOCATIONS.code + , t_LOCATIONS.name + , t_LOCATIONS.active - , t_LOCATIONS.does_meet_id_filters - , t_LOCATIONS.does_meet_non_id_filters - FROM tmp_Location t_LOCATIONS - LEFT JOIN fetchmetrics.DOG_Location LOCATION_PARENT ON t_LOCATIONS.id_location_parent = LOCATION_PARENT.id_location - ORDER BY - LOCATION_PARENT.name - , t_LOCATIONS.name - ; - END IF; + , t_LOCATIONS.does_meet_id_filters + , t_LOCATIONS.does_meet_non_id_filters + FROM tmp_Location t_LOCATIONS + LEFT JOIN fetchmetrics.DOG_Location LOCATION_PARENT ON t_LOCATIONS.id_location_parent = LOCATION_PARENT.id_location + ORDER BY + LOCATION_PARENT.name + , t_LOCATIONS.name + ; -- Errors SELECT @@ -365,26 +387,34 @@ CALL fetchmetrics.p_dog_get_many_location ( , 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 , 1 -- a_require_any_non_id_search_filters_met - , 1 -- a_output_LOCATIONS , 1 -- a_debug ); -CALL demo.p_dog_get_many_location ( +CALL fetchmetrics.p_dog_get_many_location ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_location , 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 , 1 -- a_require_any_non_id_search_filters_met - , 1 -- a_output_LOCATIONS , 1 -- a_debug ); diff --git a/static/MySQL/71220_p_dog_get_many_button_shape.sql b/static/MySQL/71220_p_dog_get_many_button_shape.sql index dc7b431..85b37c1 100644 --- a/static/MySQL/71220_p_dog_get_many_button_shape.sql +++ b/static/MySQL/71220_p_dog_get_many_button_shape.sql @@ -369,7 +369,7 @@ CALL fetchmetrics.p_dog_get_many_button_shape ( ); -CALL demo.p_dog_get_many_button_shape ( +CALL fetchmetrics.p_dog_get_many_button_shape ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_button_shape , 0 -- a_get_inactive_button_shape diff --git a/static/MySQL/71224_p_dog_get_many_colour.sql b/static/MySQL/71224_p_dog_get_many_colour.sql index 05d137b..deb5899 100644 --- a/static/MySQL/71224_p_dog_get_many_colour.sql +++ b/static/MySQL/71224_p_dog_get_many_colour.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_colour ( ); -CALL demo.p_dog_get_many_colour ( +CALL fetchmetrics.p_dog_get_many_colour ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_colour , 0 -- a_get_inactive_colour diff --git a/static/MySQL/71228_p_dog_get_many_image.sql b/static/MySQL/71228_p_dog_get_many_image.sql index f33c9a9..50757ea 100644 --- a/static/MySQL/71228_p_dog_get_many_image.sql +++ b/static/MySQL/71228_p_dog_get_many_image.sql @@ -425,7 +425,7 @@ CALL fetchmetrics.p_dog_get_many_image ( ); -CALL demo.p_dog_get_many_image ( +CALL fetchmetrics.p_dog_get_many_image ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_file_type , 0 -- a_get_inactive_file_type diff --git a/static/MySQL/71232_p_dog_calc_button_icon.sql b/static/MySQL/71232_p_dog_calc_button_icon.sql index 7d382c7..3a7e0f5 100644 --- a/static/MySQL/71232_p_dog_calc_button_icon.sql +++ b/static/MySQL/71232_p_dog_calc_button_icon.sql @@ -514,7 +514,7 @@ BEGIN , Button_Icon_Notes_Filter AS ( SELECT BUTTON_ICON.id_button_icon FROM tmp_Split_Notes_Calc_Button_Icon t_SPLIT_NOTES - INNER JOIN demo.DOG_Button_Icon BUTTON_ICON ON BUTTON_ICON.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') + INNER JOIN fetchmetrics.DOG_Button_Icon BUTTON_ICON ON BUTTON_ICON.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%') WHERE t_SPLIT_NOTES.substring IS NOT NULL AND t_SPLIT_NOTES.substring <> '' diff --git a/static/MySQL/71232_p_dog_get_many_button_icon.sql b/static/MySQL/71232_p_dog_get_many_button_icon.sql index 6704ea1..929770d 100644 --- a/static/MySQL/71232_p_dog_get_many_button_icon.sql +++ b/static/MySQL/71232_p_dog_get_many_button_icon.sql @@ -423,7 +423,7 @@ CALL fetchmetrics.p_dog_get_many_button_icon ( ); -CALL demo.p_dog_get_many_button_icon ( +CALL fetchmetrics.p_dog_get_many_button_icon ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_file_type , 0 -- a_get_inactive_file_type diff --git a/static/MySQL/71240_p_dog_save_command_button_link.sql b/static/MySQL/71240_p_dog_save_command_button_link.sql index fc758e4..6ac7f40 100644 --- a/static/MySQL/71240_p_dog_save_command_button_link.sql +++ b/static/MySQL/71240_p_dog_save_command_button_link.sql @@ -202,7 +202,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Command_Button_Link t_COMMAND_BUTTON_LINK - LEFT JOIN demo.DOG_Command COMMAND ON t_COMMAND_BUTTON_LINK.id_command = COMMAND.id_command + LEFT JOIN fetchmetrics.DOG_Command COMMAND ON t_COMMAND_BUTTON_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_COMMAND_BUTTON_LINK.id_command) OR ISNULL(COMMAND.id_command) @@ -229,7 +229,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Command_Button_Link t_COMMAND_BUTTON_LINK - LEFT JOIN demo.DOG_Button_Shape BUTTON_SHAPE ON t_COMMAND_BUTTON_LINK.id_button_shape = BUTTON_SHAPE.id_button_shape + LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_COMMAND_BUTTON_LINK.id_button_shape = BUTTON_SHAPE.id_button_shape WHERE ISNULL(t_COMMAND_BUTTON_LINK.id_button_shape) OR ISNULL(BUTTON_SHAPE.id_button_shape) @@ -256,7 +256,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Command_Button_Link t_COMMAND_BUTTON_LINK - LEFT JOIN demo.DOG_Colour COLOUR ON t_COMMAND_BUTTON_LINK.id_button_colour = COLOUR.id_colour + LEFT JOIN fetchmetrics.DOG_Colour COLOUR ON t_COMMAND_BUTTON_LINK.id_button_colour = COLOUR.id_colour WHERE ISNULL(t_COMMAND_BUTTON_LINK.id_button_colour) OR ISNULL(COLOUR.id_colour) @@ -283,7 +283,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Command_Button_Link t_COMMAND_BUTTON_LINK - LEFT JOIN demo.DOG_Location LOCATIONS ON t_COMMAND_BUTTON_LINK.id_location = LOCATIONS.id_location + LEFT JOIN fetchmetrics.DOG_Location LOCATIONS ON t_COMMAND_BUTTON_LINK.id_location = LOCATIONS.id_location WHERE ISNULL(t_COMMAND_BUTTON_LINK.id_location) OR ISNULL(LOCATIONS.id_location) @@ -696,11 +696,11 @@ DELIMITER ; /* -SELECT * FROM demo.DOG_Command; -SELECT * FROM demo.DOG_Button_Shape; -SELECT * FROM demo.DOG_Colour; -SELECT * FROM demo.DOG_Button_Icon; -SELECT * FROM demo.DOG_Location; +SELECT * FROM fetchmetrics.DOG_Command; +SELECT * FROM fetchmetrics.DOG_Button_Shape; +SELECT * FROM fetchmetrics.DOG_Colour; +SELECT * FROM fetchmetrics.DOG_Button_Icon; +SELECT * FROM fetchmetrics.DOG_Location; 'ripplysipplenippletippledipplekipple' diff --git a/static/MySQL/71300_p_dog_get_many_weather.sql b/static/MySQL/71300_p_dog_get_many_weather.sql index b2d8025..82a9acf 100644 --- a/static/MySQL/71300_p_dog_get_many_weather.sql +++ b/static/MySQL/71300_p_dog_get_many_weather.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_weather ( ); -CALL demo.p_dog_get_many_weather ( +CALL fetchmetrics.p_dog_get_many_weather ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_weather , 0 -- a_get_inactive_weather diff --git a/static/MySQL/71304_p_dog_get_many_lighting_level.sql b/static/MySQL/71304_p_dog_get_many_lighting_level.sql index 7714a84..a0223de 100644 --- a/static/MySQL/71304_p_dog_get_many_lighting_level.sql +++ b/static/MySQL/71304_p_dog_get_many_lighting_level.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_lighting_level ( ); -CALL demo.p_dog_get_many_lighting_level ( +CALL fetchmetrics.p_dog_get_many_lighting_level ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_lighting_level , 0 -- a_get_inactive_lighting_level diff --git a/static/MySQL/71308_p_dog_get_many_assessment.sql b/static/MySQL/71308_p_dog_get_many_assessment.sql index cbd2c67..e2aea4c 100644 --- a/static/MySQL/71308_p_dog_get_many_assessment.sql +++ b/static/MySQL/71308_p_dog_get_many_assessment.sql @@ -493,7 +493,7 @@ CALL fetchmetrics.p_dog_get_many_assessment ( ); -CALL demo.p_dog_get_many_assessment ( +CALL fetchmetrics.p_dog_get_many_assessment ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_assessment , 0 -- a_get_inactive_assessment diff --git a/static/MySQL/71310_p_dog_save_assessment.sql b/static/MySQL/71310_p_dog_save_assessment.sql index bdf0f6b..c500bf0 100644 --- a/static/MySQL/71310_p_dog_save_assessment.sql +++ b/static/MySQL/71310_p_dog_save_assessment.sql @@ -216,7 +216,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN demo.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather + LEFT JOIN fetchmetrics.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather WHERE ISNULL(t_ASSESSMENT.id_weather) OR ISNULL(WEATHER.id_weather) @@ -243,7 +243,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN demo.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level + LEFT JOIN fetchmetrics.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level WHERE ISNULL(t_ASSESSMENT.id_lighting_level) OR ISNULL(LIGHTING_LEVEL.id_lighting_level) @@ -270,7 +270,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN demo.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location + LEFT JOIN fetchmetrics.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location WHERE ISNULL(t_ASSESSMENT.id_location) OR ISNULL(LOCATION.id_location) @@ -297,7 +297,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user + LEFT JOIN fetchmetrics.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user WHERE ISNULL(t_ASSESSMENT.id_user_handler) OR ISNULL(USER_HANDLER.id_user) diff --git a/static/MySQL/71312_p_dog_get_many_distraction_type.sql b/static/MySQL/71312_p_dog_get_many_distraction_type.sql index 1b755f9..39dc014 100644 --- a/static/MySQL/71312_p_dog_get_many_distraction_type.sql +++ b/static/MySQL/71312_p_dog_get_many_distraction_type.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_distraction_type ( ); -CALL demo.p_dog_get_many_distraction_type ( +CALL fetchmetrics.p_dog_get_many_distraction_type ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_distraction_type , 0 -- a_get_inactive_distraction_type diff --git a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql index 06200e8..7ae8a04 100644 --- a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_distraction_intensity_level ( ); -CALL demo.p_dog_get_many_distraction_intensity_level ( +CALL fetchmetrics.p_dog_get_many_distraction_intensity_level ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_distraction_intensity_level , 0 -- a_get_inactive_distraction_intensity_level diff --git a/static/MySQL/71322_p_dog_save_distraction.sql b/static/MySQL/71322_p_dog_save_distraction.sql index cd29c79..6216816 100644 --- a/static/MySQL/71322_p_dog_save_distraction.sql +++ b/static/MySQL/71322_p_dog_save_distraction.sql @@ -246,7 +246,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment + LEFT JOIN fetchmetrics.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment WHERE ISNULL(t_DISTRACTION.id_assessment) OR ISNULL(ASSESSMENT.id_assessment) @@ -273,7 +273,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type + LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type WHERE ISNULL(t_DISTRACTION.id_distraction_type) OR ISNULL(DISTRACTION_TYPE.id_type) @@ -300,7 +300,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level + LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_emotional) OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level) @@ -327,7 +327,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level + LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_scent) OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level) @@ -354,7 +354,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level + LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sight) OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level) @@ -381,7 +381,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level + LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sound) OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level) @@ -408,7 +408,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level + LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_touch) OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level) diff --git a/static/MySQL/71324_p_dog_get_many_bribe.sql b/static/MySQL/71324_p_dog_get_many_bribe.sql index 03f5560..5776d48 100644 --- a/static/MySQL/71324_p_dog_get_many_bribe.sql +++ b/static/MySQL/71324_p_dog_get_many_bribe.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_bribe ( ); -CALL demo.p_dog_get_many_bribe ( +CALL fetchmetrics.p_dog_get_many_bribe ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_bribe , 0 -- a_get_inactive_bribe diff --git a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql index c95c490..0ed5d99 100644 --- a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql +++ b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql @@ -254,7 +254,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment + LEFT JOIN fetchmetrics.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment) OR ISNULL(ASSESSMENT.id_assessment) @@ -281,7 +281,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command + LEFT JOIN fetchmetrics.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) OR ISNULL(COMMAND.id_command) @@ -297,7 +297,7 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command + LEFT JOIN fetchmetrics.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) OR ISNULL(COMMAND.id_command) @@ -308,7 +308,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality + LEFT JOIN fetchmetrics.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality) OR ISNULL(COMMAND_MODALITY.id_command_modality) @@ -335,7 +335,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe + LEFT JOIN fetchmetrics.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe) OR ISNULL(BRIBE.id_bribe) @@ -351,7 +351,7 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Bribe: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe + LEFT JOIN fetchmetrics.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe) OR ISNULL(BRIBE.id_bribe) diff --git a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql index 4227a22..01995c6 100644 --- a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql @@ -373,7 +373,7 @@ CALL fetchmetrics.p_dog_get_many_response_quality_metric ( ); -CALL demo.p_dog_get_many_response_quality_metric ( +CALL fetchmetrics.p_dog_get_many_response_quality_metric ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_response_quality_metric , 0 -- a_get_inactive_response_quality_metric diff --git a/static/MySQL/71336_p_dog_get_many_obedience_level.sql b/static/MySQL/71336_p_dog_get_many_obedience_level.sql index ab9a332..125445c 100644 --- a/static/MySQL/71336_p_dog_get_many_obedience_level.sql +++ b/static/MySQL/71336_p_dog_get_many_obedience_level.sql @@ -359,7 +359,7 @@ CALL fetchmetrics.p_dog_get_many_obedience_level ( ); -CALL demo.p_dog_get_many_obedience_level ( +CALL fetchmetrics.p_dog_get_many_obedience_level ( 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user , 1 -- a_get_all_obedience_level , 0 -- a_get_inactive_obedience_level diff --git a/static/MySQL/71342_p_dog_save_assessment_response.sql b/static/MySQL/71342_p_dog_save_assessment_response.sql index 7c231ea..9c2bccd 100644 --- a/static/MySQL/71342_p_dog_save_assessment_response.sql +++ b/static/MySQL/71342_p_dog_save_assessment_response.sql @@ -203,7 +203,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link WHERE ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link) OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link) @@ -230,7 +230,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE - LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric + LEFT JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric WHERE ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric) OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric) @@ -246,7 +246,7 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Dog Assessment Response(s) do not have a valid Response_Quality_Metric: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE - LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric + LEFT JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric WHERE ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric) OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric) @@ -257,7 +257,7 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE - LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level + LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level WHERE ISNULL(t_ASSESSMENT_RESPONSE.id_obedience_level) OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level) diff --git a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql index 8448aa2..58e925e 100644 --- a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql +++ b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql @@ -608,9 +608,9 @@ DELIMITER ; /* SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; +FROM fetchmetrics.PH_Apply_Founding_Partner_Form; SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; +FROM fetchmetrics.PH_Apply_Founding_Partner_Form_Temp; @@ -661,9 +661,9 @@ CALL fetchmetrics.p_ph_save_apply_founding_partner_form ( ); SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; +FROM fetchmetrics.PH_Apply_Founding_Partner_Form; SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; +FROM fetchmetrics.PH_Apply_Founding_Partner_Form_Temp; diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index e9d4835..c0413f1 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -1145,6 +1145,27 @@ VALUES ) ; +/* +INSERT INTO fetchmetrics.DOG_Location_User_Link ( + id_location + , id_user + , id_access_level +) +SELECT + L.id_location + , 1 + , 3 +FROM fetchmetrics.DOG_Location L +UNION +SELECT + L.id_location + , 2 + , 3 +FROM fetchmetrics.DOG_Location L +; +*/ + + /* INSERT INTO fetchmetrics.DOG_Location_Link ( id_location_parent diff --git a/static/MySQL/90050_create_and_view_radar_diagram.sql b/static/MySQL/90050_create_and_view_radar_diagram.sql index 8acdfe8..1972b35 100644 --- a/static/MySQL/90050_create_and_view_radar_diagram.sql +++ b/static/MySQL/90050_create_and_view_radar_diagram.sql @@ -1,28 +1,28 @@ SELECT * -FROM demo.DOG_Assessment A +FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment = 21 ORDER BY A.created_on DESC ; SELECT * -FROM demo.DOG_Distraction D -INNER JOIN demo.DOG_Assessment A ON D.id_assessment = A.id_assessment +FROM fetchmetrics.DOG_Distraction D +INNER JOIN fetchmetrics.DOG_Assessment A ON D.id_assessment = A.id_assessment WHERE D.id_distraction = 5 -- A.id_assessment = 21 ORDER BY A.created_on DESC, D.created_on DESC ; SELECT * -FROM demo.DOG_Assessment_Command_Modality_Link ACML -INNER JOIN demo.DOG_Assessment A ON ACML.id_assessment = A.id_assessment +FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML +INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment WHERE -- ACML.id_link = 5 A.id_assessment = 21 ORDER BY A.created_on DESC, ACML.created_on DESC ; SELECT * -FROM demo.DOG_Assessment_Response AR -INNER JOIN demo.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link -INNER JOIN demo.DOG_Assessment A ON ACML.id_assessment = A.id_assessment +FROM fetchmetrics.DOG_Assessment_Response AR +INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link +INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment WHERE -- ACML.id_link = 5 A.id_assessment = 21 @@ -30,7 +30,7 @@ ORDER BY A.created_on DESC, ACML.created_on DESC ; /* -INSERT INTO demo.DOG_Assessment_Command_Modality_Link ( +INSERT INTO fetchmetrics.DOG_Assessment_Command_Modality_Link ( id_assessment , id_command @@ -54,13 +54,13 @@ SELECT , case when ((2 + C.id_command) % 3) = 0 then 0 else 1 end -- is_in_hearing_range_of_handler , case when (C.id_command % 17) = 0 then 1 else 0 end -- is_on_lead , 1 -- active -FROM demo.DOG_Command C +FROM fetchmetrics.DOG_Command C -- INNER JOIN Filtered_Commands FC ON C.id_command = FC.id_command -- WHERE FC.index_command_in_category % 3 = WHERE (C.id_command % 7 = 0) or (C.id_command % 11 = 0) or (C.id_command % 13 = 0) ; -INSERT INTO demo.DOG_Assessment_Response ( +INSERT INTO fetchmetrics.DOG_Assessment_Response ( id_assessment_command_modality_link , id_response_quality_metric , id_obedience_level @@ -71,8 +71,8 @@ SELECT , METRIC.id_response_quality_metric , 1 + (ACML.id_command % 8) id_obedience_level , 1 + ((METRIC.id_response_quality_metric * 3 + ACML.id_command) % 8) value_measured -FROM demo.DOG_Assessment_Command_Modality_Link ACML -INNER JOIN demo.DOG_Assessment A ON ACML.id_assessment = A.id_assessment +FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML +INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment CROSS JOIN ( SELECT 3 AS id_response_quality_metric UNION @@ -88,27 +88,27 @@ WITH SELECT ACML.id_link , COUNT(*) AS response_count - FROM demo.DOG_Assessment_Command_Modality_Link ACML - INNER JOIN demo.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link + FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML + INNER JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link GROUP BY ACML.id_link ) , ACML_With_Responses AS ( SELECT ACML.id_link , CASE WHEN IFNULL(ACML_RESPONSE_COUNT.response_count, 0) > 0 THEN 1 ELSE 0 END AS has_responses - FROM demo.DOG_Assessment_Command_Modality_Link ACML + FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML LEFT JOIN ACML_Response_Count ACML_RESPONSE_COUNT ON ACML.id_link = ACML_RESPONSE_COUNT.id_link ) , Category_Size_Known AS ( SELECT CC.id_command_category , COUNT(*) AS count_known_commands - FROM demo.DOG_Command_Category CC - INNER JOIN demo.DOG_Command C ON CC.id_command_category = C.id_command_category - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ACML ON C.id_command = ACML.id_command + FROM fetchmetrics.DOG_Command_Category CC + INNER JOIN fetchmetrics.DOG_Command C ON CC.id_command_category = C.id_command_category + LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON C.id_command = ACML.id_command LEFT JOIN ACML_With_Responses ACML_WITH_RESPONSES ON ACML.id_link = ACML_WITH_RESPONSES.id_link - LEFT JOIN demo.DOG_Assessment A ON ACML.id_assessment = A.id_assessment - -- LEFT JOIN demo.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link + LEFT JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment + -- LEFT JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link WHERE ACML_WITH_RESPONSES.has_responses = 1 AND CC.active = 1 @@ -122,22 +122,22 @@ WITH SELECT CC.id_command_category , COUNT(*) AS count_commands - FROM demo.DOG_Command_Category CC - INNER JOIN demo.DOG_Command C ON CC.id_command_category = C.id_command_category + FROM fetchmetrics.DOG_Command_Category CC + INNER JOIN fetchmetrics.DOG_Command C ON CC.id_command_category = C.id_command_category WHERE CC.active = 1 AND C.active = 1 GROUP BY CC.id_command_category ) SELECT * -FROM demo.DOG_Command_Category CC +FROM fetchmetrics.DOG_Command_Category CC LEFT JOIN Category_Size_Known C_SIZE_KNOWN ON CC.id_command_category = C_SIZE_KNOWN.id_command_category LEFT JOIN Category_Size C_SIZE ON CC.id_command_category = C_SIZE.id_command_category WHERE CC.active = 1 ; -INSERT INTO demo.DOG_Assessment ( +INSERT INTO fetchmetrics.DOG_Assessment ( id_temp , id_weather , id_lighting_level @@ -156,11 +156,11 @@ SELECT , A.notes , A.temperature_celcius , DATE_SUB(A.created_on, INTERVAL 5 WEEK) -FROM demo.DOG_Assessment A +FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment <= 21 ; -INSERT INTO demo.DOG_Distraction ( +INSERT INTO fetchmetrics.DOG_Distraction ( id_temp , id_assessment , id_distraction_type @@ -185,15 +185,15 @@ SELECT , D.quantity , D.proximity_metres , D.notes -FROM demo.DOG_Distraction D -INNER JOIN demo.DOG_Assessment A +FROM fetchmetrics.DOG_Distraction D +INNER JOIN fetchmetrics.DOG_Assessment A -- ON D.id_assessment = A.id_assessment ON D.id_assessment = A.id_temp AND A.id_assessment > 910 -- WHERE A.id_assessment <= 21 ; -INSERT INTO demo.DOG_Assessment_Command_Modality_Link ( +INSERT INTO fetchmetrics.DOG_Assessment_Command_Modality_Link ( id_temp , id_assessment , id_command @@ -216,15 +216,15 @@ SELECT , ACML.is_in_scent_range_of_handler , ACML.is_in_hearing_range_of_handler , ACML.is_on_lead -FROM demo.DOG_Assessment_Command_Modality_Link ACML -INNER JOIN demo.DOG_Assessment A +FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML +INNER JOIN fetchmetrics.DOG_Assessment A -- ON ACML.id_assessment = A.id_assessment ON ACML.id_assessment = A.id_temp AND A.id_assessment > 910 -- WHERE A.id_assessment <= 21 ; -INSERT INTO demo.DOG_Assessment_Response ( +INSERT INTO fetchmetrics.DOG_Assessment_Response ( id_temp , id_assessment_command_modality_link , id_response_quality_metric @@ -234,31 +234,31 @@ INSERT INTO demo.DOG_Assessment_Response ( ) SELECT AR.id_response - , ACML.id_link -- (SELECT ACML_NEW.id_assessment_command_modality_link FROM demo.DOG_Assessment_Command_Modality_Link ACML_NEW WHERE ACML_NEW.id_temp + , ACML.id_link -- (SELECT ACML_NEW.id_assessment_command_modality_link FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML_NEW WHERE ACML_NEW.id_temp , AR.id_response_quality_metric , AR.id_obedience_level , POWER(CASE WHEN AR.id_obedience_level = 3 THEN 0.9 ELSE 1.35 END, 6) * AR.value_measured , AR.notes -FROM demo.DOG_Assessment_Response AR -INNER JOIN demo.DOG_Assessment_Command_Modality_Link ACML +FROM fetchmetrics.DOG_Assessment_Response AR +INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML -- ON AR.id_assessment_command_modality_link = ACML.id_link ON AR.id_assessment_command_modality_link = ACML.id_temp AND ACML.id_link > 3168 --- INNER JOIN demo.DOG_Assessment A ON AR.id_assessment = A.id_assessment +-- INNER JOIN fetchmetrics.DOG_Assessment A ON AR.id_assessment = A.id_assessment -- WHERE A.id_assessment <= 21 ; --- DELETE A FROM demo.DOG_Assessment A WHERE A.id_assessment > 21; --- DELETE A FROM demo.DOG_Assessment A WHERE A.id_assessment > 21; --- DELETE A FROM demo.DOG_Assessment A WHERE A.id_assessment > 21; --- DELETE A FROM demo.DOG_Assessment A WHERE A.id_assessment > 21; +-- DELETE A FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment > 21; +-- DELETE A FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment > 21; +-- DELETE A FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment > 21; +-- DELETE A FROM fetchmetrics.DOG_Assessment A WHERE A.id_assessment > 21; */ SELECT * -FROM demo.DOG_Assessment_Response AR -INNER JOIN demo.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link -INNER JOIN demo.DOG_Assessment A ON ACML.id_assessment = A.id_assessment -INNER JOIN demo.DOG_Command C ON ACML.id_command = C.id_command +FROM fetchmetrics.DOG_Assessment_Response AR +INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link +INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment +INNER JOIN fetchmetrics.DOG_Command C ON ACML.id_command = C.id_command WHERE C.name LIKE '%SIT%' ORDER BY A.created_on, AR.id_response ; \ No newline at end of file diff --git a/static/MySQL/deprecated/70504_p_dog_calc_user.sql b/static/MySQL/deprecated/70504_p_dog_calc_user.sql index 5462762..79c0771 100644 --- a/static/MySQL/deprecated/70504_p_dog_calc_user.sql +++ b/static/MySQL/deprecated/70504_p_dog_calc_user.sql @@ -558,7 +558,7 @@ BEGIN , User_Email_Filter AS ( SELECT USER.id_user FROM tmp_Split_Email_Calc_User t_SPLIT_EMAIL - INNER JOIN demo.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%') + INNER JOIN fetchmetrics.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%') WHERE IFNULL(t_SPLIT_EMAIL.substring, '') <> '' ) , User_Filters AS ( diff --git a/static/docs/infographic-founding-partner-program.xcf b/static/docs/infographic-founding-partner-program.xcf new file mode 100644 index 0000000..84dc1fe Binary files /dev/null and b/static/docs/infographic-founding-partner-program.xcf differ diff --git a/static/docs/sitemap.xml b/static/docs/sitemap.xml index 3816546..e18d8c0 100644 --- a/static/docs/sitemap.xml +++ b/static/docs/sitemap.xml @@ -75,9 +75,4 @@ monthly 0.8 - - str] = '/blog/article/how-to-scale-your-dog-training-business-from-25-to-100-plus-clients' - str] = '/blog/article/how-to-scale-your-dog-training-business-from-solo-to-multi-trainer-success' - = '/blog/article/the-science-behind-dog-training-assessments-how-to-track-real-progress' - = '/blog/article/why-every-professional-trainer-needs-a-command-dictionary-in-2025' - HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH: ClassVar[str] = '/blog/category/marketing-and-growth' \ No newline at end of file + \ No newline at end of file diff --git a/static/images/dog_silhouette.png b/static/images/dog_silhouette.png new file mode 100644 index 0000000..b02f4a5 Binary files /dev/null and b/static/images/dog_silhouette.png differ diff --git a/static/images/infographic-founding-partner-program-9:16-FQ.png b/static/images/infographic-founding-partner-program-9:16-FQ.png new file mode 100644 index 0000000..b521c63 Binary files /dev/null and b/static/images/infographic-founding-partner-program-9:16-FQ.png differ diff --git a/static/images/infographic-founding-partner-program-9:16-HQ.png b/static/images/infographic-founding-partner-program-9:16-HQ.png new file mode 100644 index 0000000..818bac6 Binary files /dev/null and b/static/images/infographic-founding-partner-program-9:16-HQ.png differ diff --git a/static/images/infographic-founding-partner-program-9:16-LQ.png b/static/images/infographic-founding-partner-program-9:16-LQ.png new file mode 100644 index 0000000..89aabde Binary files /dev/null and b/static/images/infographic-founding-partner-program-9:16-LQ.png differ diff --git a/static/images/trophy.png b/static/images/trophy.png new file mode 100644 index 0000000..151eb8a Binary files /dev/null and b/static/images/trophy.png differ