Feat: New blog article page.
This commit is contained in:
@@ -1,16 +1,15 @@
|
||||
|
||||
USE demo;
|
||||
|
||||
DROP PROCEDURE IF EXISTS demo.p_dog_calc_dog;
|
||||
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_obedience_level;
|
||||
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE demo.p_dog_calc_dog (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_id_user INT
|
||||
, IN a_get_all_dog BIT
|
||||
, IN a_get_inactive_dog BIT
|
||||
, IN a_ids_dog TEXT
|
||||
, IN a_names_dog TEXT
|
||||
CREATE PROCEDURE demo.p_dog_get_many_obedience_level (
|
||||
IN a_id_user INT
|
||||
, IN a_get_all_obedience_level BIT
|
||||
, IN a_get_inactive_obedience_level BIT
|
||||
, IN a_ids_obedience_level TEXT
|
||||
, IN a_names_obedience_level TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
@@ -20,23 +19,16 @@ CREATE PROCEDURE demo.p_dog_calc_dog (
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
, IN a_require_any_non_id_search_filters_met BIT
|
||||
, IN a_show_errors BIT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_can_view BIT;
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_has_filter_dog_id BIT;
|
||||
DECLARE v_has_filter_dog_name BIT;
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_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
|
||||
@@ -49,14 +41,14 @@ BEGIN
|
||||
|
||||
ROLLBACK;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT
|
||||
, code VARCHAR(250) NOT NULL
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
@@ -79,706 +71,204 @@ BEGIN
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||
END;
|
||||
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_guid := UUID();
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
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);
|
||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
||||
-- USER filters handled by p_dog_calc_user_access
|
||||
/*
|
||||
SET a_get_all_obedience_level := IFNULL(a_get_all_obedience_level, 0);
|
||||
SET a_get_inactive_obedience_level := IFNULL(a_get_inactive_obedience_level, 0);
|
||||
SET a_ids_obedience_level := TRIM(IFNULL(a_ids_obedience_level, ''));
|
||||
SET a_names_obedience_level := TRIM(IFNULL(a_names_obedience_level, ''));
|
||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||
SET a_show_errors := IFNULL(a_show_errors, 0);
|
||||
*/
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, a_get_all_dog
|
||||
, a_get_inactive_dog
|
||||
, a_ids_dog
|
||||
, a_names_dog
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
a_id_user
|
||||
, a_get_all_obedience_level
|
||||
, a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level
|
||||
, a_names_obedience_level
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
, a_require_any_non_id_search_filters_met
|
||||
, a_show_errors
|
||||
, a_debug
|
||||
;
|
||||
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_dog_view
|
||||
, v_guid
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Dog (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
CREATE TEMPORARY TABLE tmp_Obedience_Level (
|
||||
id_obedience_level INT NOT NULL
|
||||
, code VARCHAR(250)
|
||||
, name VARCHAR(250)
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
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
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||
, id_type INT
|
||||
, code VARCHAR(250) NOT NULL
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT
|
||||
);
|
||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT
|
||||
);
|
||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
||||
|
||||
SET v_has_filter_dog_id = CASE WHEN a_ids_dog <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_dog_name = CASE WHEN a_names_dog <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dog.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
-- Call Obedience_Level Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_obedience_level -- a_get_all_obedience_level
|
||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level -- a_ids_obedience_level
|
||||
, a_names_obedience_level -- a_names_obedience_level
|
||||
, a_get_all_user
|
||||
, 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
|
||||
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_obedience_level (
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_obedience_level -- a_get_all_obedience_level
|
||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level -- a_ids_obedience_level
|
||||
, a_names_obedience_level -- a_names_obedience_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Dog (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Dog;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Dog t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Dogs
|
||||
IF v_has_filter_dog_id = 1 THEN
|
||||
CALL demo.p_core_split(a_guid, a_ids_dog, ',', a_debug);
|
||||
|
||||
SET sql_mode = '';
|
||||
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT *
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
SELECT COUNT(*) AS count_split_ids
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
SELECT COUNT(*) FROM demo.DOG_Obedience_Level_Temp;
|
||||
SELECT * FROM demo.DOG_Obedience_Level_Temp;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Split_Id_Calc_Dog (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Obedience_Level (
|
||||
id_obedience_level
|
||||
, code
|
||||
, name
|
||||
, active
|
||||
|
||||
IF v_has_filter_dog_name = 1 THEN
|
||||
CALL demo.p_core_split(a_guid, a_names_dog, ',', a_debug);
|
||||
|
||||
SET sql_mode = '';
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
OBEDIENCE_LEVEL_T.id_obedience_level
|
||||
, OBEDIENCE_LEVEL_T.code
|
||||
, OBEDIENCE_LEVEL_T.name
|
||||
, OBEDIENCE_LEVEL_T.active
|
||||
|
||||
, OBEDIENCE_LEVEL_T.does_meet_id_filters
|
||||
, OBEDIENCE_LEVEL_T.does_meet_non_id_filters
|
||||
FROM demo.DOG_Obedience_Level_Temp OBEDIENCE_LEVEL_T
|
||||
WHERE OBEDIENCE_LEVEL_T.GUID = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT *
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
SELECT COUNT(*) AS count_split_names
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
SELECT COUNT(*) FROM tmp_Obedience_Level;
|
||||
SELECT * FROM tmp_Obedience_Level;
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_Split_Name_Calc_Dog (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
||||
FROM demo.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
||||
;
|
||||
|
||||
CALL demo.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Dog
|
||||
;
|
||||
SELECT *
|
||||
FROM tmp_Split_Name_Calc_Dog
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DOG.id_dog)
|
||||
OR (
|
||||
DOG.active = 0
|
||||
AND a_get_inactive_dog = 0
|
||||
)
|
||||
;
|
||||
/* Don't error on names not found
|
||||
ELSEIF EXISTS ()
|
||||
*/
|
||||
ELSE
|
||||
INSERT INTO tmp_Dog_Calc_Dog (
|
||||
id_dog
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
Dog_Id_Filter AS (
|
||||
SELECT DOG.id_dog
|
||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
||||
INNER JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
||||
)
|
||||
, Dog_Name_Filter AS (
|
||||
SELECT DOG.id_dog
|
||||
FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME
|
||||
INNER JOIN demo.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
||||
)
|
||||
, Dog_Filters AS (
|
||||
SELECT
|
||||
DOG_COMBINED.id_dog
|
||||
, MAX(DOG_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(DOG_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
DOG_ID_FILTER.id_dog
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Dog_Id_Filter DOG_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
DOG_NAME_FILTER.id_dog
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Dog_Name_Filter DOG_NAME_FILTER
|
||||
) DOG_COMBINED
|
||||
GROUP BY DOG_COMBINED.id_dog
|
||||
)
|
||||
, 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
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_dog_name = 0
|
||||
)
|
||||
OR IFNULL(DOG_FILTERS.does_meet_name_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM demo.DOG_Dog DOG
|
||||
LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog
|
||||
LEFT JOIN 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
|
||||
OR (
|
||||
v_has_filter_dog_id = 1
|
||||
AND DOG_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_dog_name = 1
|
||||
AND DOG_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(DOG_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_dog = 1
|
||||
OR DOG.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get all dogs';
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
/*
|
||||
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 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 (
|
||||
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 (
|
||||
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
|
||||
AND t_DOG.does_meet_id_filters = 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
|
||||
AND t_DOG.does_meet_non_id_filters = 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;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After filter dogs';
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
SELECT * FROM tmp_Obedience_Level;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog_Calc_Dog;
|
||||
DELETE FROM tmp_Obedience_Level;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
-- Dogs
|
||||
INSERT INTO demo.DOG_Dog_Temp (
|
||||
guid
|
||||
, id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
-- Obedience_Levels
|
||||
SELECT
|
||||
a_guid
|
||||
, t_DOG.id_dog
|
||||
, DOG.name
|
||||
, DOG.appearance
|
||||
, DOG.mass_kg
|
||||
, DOG.notes
|
||||
, DOG.active
|
||||
t_OBEDIENCE_LEVELS.id_obedience_level
|
||||
, t_OBEDIENCE_LEVELS.code
|
||||
, t_OBEDIENCE_LEVELS.name
|
||||
, t_OBEDIENCE_LEVELS.active
|
||||
|
||||
, t_DOG.does_meet_id_filters
|
||||
, t_DOG.does_meet_non_id_filters
|
||||
FROM demo.DOG_Dog DOG
|
||||
INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
||||
, t_OBEDIENCE_LEVELS.does_meet_id_filters
|
||||
, t_OBEDIENCE_LEVELS.does_meet_non_id_filters
|
||||
FROM tmp_Obedience_Level t_OBEDIENCE_LEVELS
|
||||
LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_OBEDIENCE_LEVELS.id_obedience_level = OBEDIENCE_LEVELS.id_obedience_level
|
||||
ORDER BY t_OBEDIENCE_LEVELS.name
|
||||
;
|
||||
|
||||
-- Errors
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error t_ERROR
|
||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
|
||||
-- Errors
|
||||
IF a_show_errors = 1 THEN
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
SELECT * FROM tmp_Obedience_Level;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_obedience_level(
|
||||
v_guid -- a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -789,14 +279,12 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
|
||||
CALL demo.p_dog_calc_dog (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_dog
|
||||
, 0 -- a_get_inactive_dog
|
||||
, '' -- a_ids_dog
|
||||
, '' -- a_names_dog
|
||||
CALL demo.p_dog_get_many_obedience_level (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_obedience_level
|
||||
, 0 -- a_get_inactive_obedience_level
|
||||
, '' -- a_ids_obedience_level
|
||||
, '' -- a_names_obedience_level
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
@@ -806,38 +294,26 @@ CALL demo.p_dog_calc_dog (
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 1 -- a_require_any_non_id_search_filters_met
|
||||
, 1 -- a_show_errors
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
CALL demo.p_dog_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
|
||||
CALL demo.p_dog_get_many_obedience_level (
|
||||
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||
, 1 -- a_get_all_obedience_level
|
||||
, 0 -- a_get_inactive_obedience_level
|
||||
, '' -- a_ids_obedience_level
|
||||
, 'pat,point' -- a_names_obedience_level
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, 'pat' -- a_names_user
|
||||
, 'pat' -- a_emails_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
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT *
|
||||
FROM demo.DOG_Dog_Temp
|
||||
;
|
||||
|
||||
CALL demo.p_dog_clear_calc_dog (
|
||||
'slips ' -- a_guid
|
||||
, 1 -- debug
|
||||
, 1 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
@@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Intensity_Level_User_Lin
|
||||
, id_intensity_level INT NOT NULL
|
||||
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_intensity_level
|
||||
FOREIGN KEY (id_intensity_level)
|
||||
REFERENCES fetchmetrics.DOG_Distraction_Intensity_Level(id_type)
|
||||
REFERENCES fetchmetrics.DOG_Distraction_Intensity_Level(id_intensity_level)
|
||||
, id_user INT NOT NULL
|
||||
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_user
|
||||
FOREIGN KEY (id_user)
|
||||
|
||||
@@ -11,7 +11,7 @@ WHERE
|
||||
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Response_Quality_Metric_User_Link (
|
||||
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||
, id_response_quality_metric INT NOT NULL
|
||||
, CONSTRAINT FK_DOG_Response_Quality_Metric_User_Link_id_response_quality_metric
|
||||
, CONSTRAINT FK_DOG_Response_Quality_Metric_User_Link_id_metric
|
||||
FOREIGN KEY (id_response_quality_metric)
|
||||
REFERENCES fetchmetrics.DOG_Response_Quality_Metric(id_metric)
|
||||
, id_user INT NOT NULL
|
||||
|
||||
@@ -25,11 +25,11 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Obedience_Level_User_Link (
|
||||
, active BIT NOT NULL DEFAULT 1
|
||||
, created_on DATETIME
|
||||
, id_user_created_by INT
|
||||
, CONSTRAINT FK_DOG_Dog_id_user_created_by
|
||||
, CONSTRAINT FK_DOG_Obedience_Level_User_Link_id_user_created_by
|
||||
FOREIGN KEY (id_user_created_by)
|
||||
REFERENCES fetchmetrics.DOG_User(id_user)
|
||||
, id_change_set INT
|
||||
, CONSTRAINT FK_DOG_Dog_id_change_set
|
||||
, CONSTRAINT FK_DOG_Obedience_Level_User_Link_id_change_set
|
||||
FOREIGN KEY (id_change_set)
|
||||
REFERENCES fetchmetrics.DOG_Dog_Change_Set(id_change_set)
|
||||
);
|
||||
|
||||
@@ -30,7 +30,7 @@ BEGIN
|
||||
, value_new
|
||||
, id_change_set
|
||||
)
|
||||
-- Changed dog
|
||||
-- Changed button shape
|
||||
SELECT NEW.id_link, 'id_button_shape', CONVERT(OLD.id_button_shape, CHAR), CONVERT(NEW.id_button_shape, CHAR), NEW.id_change_set
|
||||
WHERE NOT OLD.id_button_shape <=> NEW.id_button_shape
|
||||
UNION
|
||||
|
||||
@@ -30,7 +30,7 @@ BEGIN
|
||||
, value_new
|
||||
, id_change_set
|
||||
)
|
||||
-- Changed dog
|
||||
-- Changed image
|
||||
SELECT NEW.id_link, 'id_image', CONVERT(OLD.id_image, CHAR), CONVERT(NEW.id_image, CHAR), NEW.id_change_set
|
||||
WHERE NOT OLD.id_image <=> NEW.id_image
|
||||
UNION
|
||||
|
||||
@@ -30,7 +30,7 @@ BEGIN
|
||||
, value_new
|
||||
, id_change_set
|
||||
)
|
||||
-- Changed dog
|
||||
-- Changed distraction intensity level
|
||||
SELECT NEW.id_link, 'id_intensity_level', CONVERT(OLD.id_intensity_level, CHAR), CONVERT(NEW.id_intensity_level, CHAR), NEW.id_change_set
|
||||
WHERE NOT OLD.id_intensity_level <=> NEW.id_intensity_level
|
||||
UNION
|
||||
|
||||
@@ -30,7 +30,7 @@ BEGIN
|
||||
, value_new
|
||||
, id_change_set
|
||||
)
|
||||
-- Changed dog
|
||||
-- Changed obedience level
|
||||
SELECT NEW.id_link, 'id_obedience_level', CONVERT(OLD.id_obedience_level, CHAR), CONVERT(NEW.id_obedience_level, CHAR), NEW.id_change_set
|
||||
WHERE NOT OLD.id_obedience_level <=> NEW.id_obedience_level
|
||||
UNION
|
||||
|
||||
@@ -673,7 +673,6 @@ BEGIN
|
||||
t_DOG.does_meet_id_filters = 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
|
||||
)
|
||||
)
|
||||
@@ -684,7 +683,6 @@ BEGIN
|
||||
t_DOG.does_meet_non_id_filters = 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
|
||||
)
|
||||
)
|
||||
@@ -694,7 +692,6 @@ BEGIN
|
||||
AND t_DOG.does_meet_id_filters = 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
|
||||
)
|
||||
)
|
||||
@@ -703,7 +700,6 @@ BEGIN
|
||||
AND t_DOG.does_meet_non_id_filters = 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
|
||||
)
|
||||
)
|
||||
|
||||
@@ -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_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
@@ -102,6 +103,7 @@ 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);
|
||||
|
||||
|
||||
@@ -191,6 +193,7 @@ BEGIN
|
||||
id_command_category INT NOT NULL
|
||||
, exists_valid_link BIT NOT NULL
|
||||
, id_user INT
|
||||
-- , active BIT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
);
|
||||
@@ -485,6 +488,8 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Command_Category_Calc_Command (
|
||||
id_command_category
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
@@ -569,6 +574,8 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
COMMAND_CATEGORY.id_command_category
|
||||
, IFNULL(COMMAND_CATEGORY_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, COMMAND_CATEGORY_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_command_category_id = 0
|
||||
OR COMMAND_CATEGORY_FILTERS.does_meet_id_filter = 1
|
||||
@@ -729,152 +736,6 @@ BEGIN
|
||||
ELSEIF EXISTS ()
|
||||
*/
|
||||
ELSE
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Command Filters';
|
||||
WITH
|
||||
Command_Id_Filter AS (
|
||||
SELECT COMMAND.id_command
|
||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
||||
)
|
||||
, Command_Name_Filter AS (
|
||||
SELECT COMMAND.id_command
|
||||
FROM tmp_Split_Name_Calc_Command t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE
|
||||
t_SPLIT_NAME.substring IS NOT NULL
|
||||
AND t_SPLIT_NAME.substring <> ''
|
||||
)
|
||||
, 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 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 <> ''
|
||||
)
|
||||
, Command_Notes_Filter AS (
|
||||
SELECT COMMAND.id_command
|
||||
FROM tmp_Split_Notes_Calc_Command t_SPLIT_NOTES
|
||||
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 <> ''
|
||||
)
|
||||
, Command_Filters AS (
|
||||
SELECT
|
||||
COMMAND_COMBINED.id_command
|
||||
, MAX(COMMAND_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(COMMAND_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
, MAX(COMMAND_COMBINED.does_meet_hand_signal_default_description_filter) AS does_meet_hand_signal_default_description_filter
|
||||
, MAX(COMMAND_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
||||
FROM (
|
||||
SELECT
|
||||
COMMAND_ID_FILTER.id_command
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 0 AS does_meet_hand_signal_default_description_filter
|
||||
, 0 AS does_meet_notes_filter
|
||||
FROM Command_Id_Filter COMMAND_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
COMMAND_NAME_FILTER.id_command
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
, 0 AS does_meet_hand_signal_default_description_filter
|
||||
, 0 AS does_meet_notes_filter
|
||||
FROM Command_Name_Filter COMMAND_NAME_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
COMMAND_HSDD_FILTER.id_command
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 1 AS does_meet_hand_signal_default_description_filter
|
||||
, 0 AS does_meet_notes_filter
|
||||
FROM Command_Hand_Signal_Default_Description_Filter COMMAND_HSDD_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
COMMAND_NOTES_FILTER.id_command
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 0 AS does_meet_hand_signal_default_description_filter
|
||||
, 1 AS does_meet_notes_filter
|
||||
FROM Command_Notes_Filter COMMAND_NOTES_FILTER
|
||||
) COMMAND_COMBINED
|
||||
GROUP BY COMMAND_COMBINED.id_command
|
||||
)
|
||||
SELECT
|
||||
COMMAND.id_command
|
||||
, COMMAND.id_command_category
|
||||
, CASE WHEN
|
||||
v_has_filter_command_id = 0
|
||||
OR COMMAND_FILTERS.does_meet_id_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_command_name = 0
|
||||
AND v_has_filter_command_hand_signal_default_description = 0
|
||||
AND v_has_filter_command_notes = 0
|
||||
)
|
||||
OR COMMAND_FILTERS.does_meet_name_filter = 1
|
||||
OR COMMAND_FILTERS.does_meet_hand_signal_default_description_filter = 1
|
||||
OR COMMAND_FILTERS.does_meet_notes_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
, CASE WHEN t_COMMAND_CATEGORY.id_command_category IS NOT NULL THEN 1 ELSE 0 END AS does_command_category_already_exist_in_temp_table
|
||||
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 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
|
||||
AND COMMAND_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_command_name = 1
|
||||
AND COMMAND_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_command_hand_signal_default_description = 1
|
||||
AND COMMAND_FILTERS.does_meet_hand_signal_default_description_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_command_notes = 1
|
||||
AND COMMAND_FILTERS.does_meet_notes_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_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
INSERT INTO tmp_Command_Calc_Command (
|
||||
id_command
|
||||
, id_command_category
|
||||
@@ -954,6 +815,51 @@ BEGIN
|
||||
) COMMAND_COMBINED
|
||||
GROUP BY COMMAND_COMBINED.id_command
|
||||
)
|
||||
, 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
|
||||
, COMMAND_CATEGORY.active
|
||||
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.id_command
|
||||
, COMMAND.id_command_category
|
||||
@@ -973,28 +879,13 @@ BEGIN
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
, CASE WHEN t_COMMAND_CATEGORY.id_command_category IS NOT NULL THEN 1 ELSE 0 END AS does_command_category_already_exist_in_temp_table
|
||||
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 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 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
|
||||
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
|
||||
ON COMMAND.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
|
||||
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
a_get_all_command = 1
|
||||
OR (
|
||||
v_has_filter_command_id = 1
|
||||
@@ -1013,17 +904,15 @@ BEGIN
|
||||
AND COMMAND_FILTERS.does_meet_notes_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_command = 1
|
||||
OR COMMAND.active = 1
|
||||
)
|
||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_command_category = 1
|
||||
OR COMMAND_CATEGORY_ACCESS.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
@@ -1040,28 +929,29 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
-- Missing Categories
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
/*
|
||||
IF
|
||||
NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command 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)
|
||||
AND a_require_all_id_search_filters_met = 0
|
||||
AND a_require_all_non_id_search_filters_met = 0
|
||||
THEN
|
||||
|
||||
IF
|
||||
a_require_all_id_search_filters_met = 0
|
||||
AND a_require_all_non_id_search_filters_met = 0
|
||||
THEN
|
||||
INSERT INTO tmp_Command_Category_Calc_Command (
|
||||
id_command_category
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT DISTINCT
|
||||
COMMAND_CATEGORY.id_command_category
|
||||
, 0 AS does_meet_id_filters
|
||||
, 0 AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
||||
INNER JOIN tmp_Command_Calc_Command t_COMMAND
|
||||
ON COMMAND_CATEGORY.id_command_category = t_COMMAND.id_command_category
|
||||
AND t_COMMAND.does_command_category_already_exist_in_temp_table = 0
|
||||
;
|
||||
END IF;
|
||||
INSERT INTO tmp_Command_Category_Calc_Command (
|
||||
id_command_category
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT DISTINCT
|
||||
COMMAND_CATEGORY.id_command_category
|
||||
, 0 AS does_meet_id_filters
|
||||
, 0 AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
||||
INNER JOIN tmp_Command_Calc_Command t_COMMAND
|
||||
ON COMMAND_CATEGORY.id_command_category = t_COMMAND.id_command_category
|
||||
AND t_COMMAND.does_command_category_already_exist_in_temp_table = 0
|
||||
;
|
||||
END IF;
|
||||
*/
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command 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
|
||||
@@ -1088,109 +978,19 @@ BEGIN
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_COMMAND.does_meet_id_filters = 0
|
||||
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_COMMAND.does_meet_non_id_filters = 0
|
||||
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
WITH
|
||||
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
|
||||
, MAX(IFNULL(t_COMMAND.does_meet_non_id_filters, 0)) AS does_meet_non_id_filters
|
||||
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 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(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
||||
OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 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(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(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
WITH
|
||||
Category_And_Best_Command AS (
|
||||
SELECT
|
||||
@@ -1200,6 +1000,7 @@ 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
|
||||
@@ -1242,19 +1043,23 @@ BEGIN
|
||||
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 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
|
||||
*/
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
||||
OR t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||
OR IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
||||
OR IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
@@ -1262,20 +1067,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(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
||||
OR 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 IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
||||
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||
AND IFNULL(COMMAND_CATEGORY_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 IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
||||
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
@@ -171,6 +171,8 @@ BEGIN
|
||||
CREATE TEMPORARY TABLE tmp_Location_Calc_Location (
|
||||
id_location INT NOT NULL
|
||||
, id_location_parent INT
|
||||
, exists_valid_link BIT
|
||||
, id_user INT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
, csv_id_locations_parent TEXT
|
||||
@@ -450,100 +452,11 @@ BEGIN
|
||||
ELSEIF EXISTS ()
|
||||
*/
|
||||
ELSE
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Location Filters';
|
||||
WITH
|
||||
Location_Id_Filter AS (
|
||||
SELECT LOCATIONS.id_location
|
||||
FROM tmp_Split_Id_Calc_Location t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON t_SPLIT_ID.as_int = LOCATIONS.id_location
|
||||
)
|
||||
, Location_Name_Filter AS (
|
||||
SELECT LOCATIONS.id_location
|
||||
FROM tmp_Split_Name_Calc_Location t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON LOCATIONS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Location_Filters AS (
|
||||
SELECT
|
||||
LOCATIONS_COMBINED.id_location
|
||||
, MAX(LOCATIONS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(LOCATIONS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
LOCATIONS_ID_FILTER.id_location
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Location_Id_Filter LOCATIONS_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
LOCATIONS_NAME_FILTER.id_location
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Location_Name_Filter LOCATIONS_NAME_FILTER
|
||||
) LOCATIONS_COMBINED
|
||||
GROUP BY LOCATIONS_COMBINED.id_location
|
||||
)
|
||||
SELECT
|
||||
LOCATIONS.id_location
|
||||
, CASE WHEN
|
||||
v_has_filter_location_id = 0
|
||||
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 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
|
||||
OR (
|
||||
v_has_filter_location_id = 1
|
||||
AND LOCATIONS_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_location_name = 1
|
||||
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
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
INSERT INTO tmp_Location_Calc_Location (
|
||||
id_location
|
||||
, id_location_parent
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
@@ -581,9 +494,55 @@ BEGIN
|
||||
) LOCATIONS_COMBINED
|
||||
GROUP BY LOCATIONS_COMBINED.id_location
|
||||
)
|
||||
, 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 exists_valid_link
|
||||
, 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
|
||||
, t_USER.does_meet_id_filters DESC
|
||||
, t_USER.does_meet_non_id_filters DESC
|
||||
) AS index_link_in_location
|
||||
, t_USER.id_user
|
||||
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
|
||||
)
|
||||
SELECT
|
||||
LOCATIONS.id_location
|
||||
, LOCATIONS.id_location_parent
|
||||
, IFNULL(LOCATIONS_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, LOCATIONS_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_location_id = 0
|
||||
OR IFNULL(LOCATIONS_FILTERS.does_meet_id_filter, 0) = 1
|
||||
@@ -596,26 +555,11 @@ 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
|
||||
LEFT JOIN Location_Access LOCATIONS_ACCESS
|
||||
ON LOCATIONS.id_location = LOCATIONS_ACCESS.id_location
|
||||
AND LOCATIONS_ACCESS.index_link_in_location = 1
|
||||
WHERE
|
||||
(
|
||||
(
|
||||
a_get_all_location = 1
|
||||
OR (
|
||||
v_has_filter_location_id = 1
|
||||
@@ -626,13 +570,7 @@ 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 IFNULL(LOCATIONS_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_location = 1
|
||||
OR LOCATIONS.active = 1
|
||||
@@ -651,6 +589,7 @@ 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
|
||||
@@ -694,45 +633,35 @@ BEGIN
|
||||
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
|
||||
-- LEFT JOIN Location_Access LOCATION_ACCESS ON t_LOCATIONS.id_location = LOCATION_ACCESS.id_location
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER ON t_LOCATIONS.id_user = t_USER.id_user
|
||||
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 IFNULL(t_USER.does_meet_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 IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
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
|
||||
)
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
OR (
|
||||
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
|
||||
)
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
@@ -12,6 +12,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_button_shape (
|
||||
, IN a_ids_button_shape TEXT
|
||||
, IN a_names_button_shape TEXT
|
||||
, IN a_notes_button_shape 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
|
||||
@@ -31,6 +36,9 @@ BEGIN
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -87,7 +95,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 );
|
||||
|
||||
@@ -113,6 +123,11 @@ BEGIN
|
||||
, a_ids_button_shape
|
||||
, a_names_button_shape
|
||||
, a_notes_button_shape
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -134,9 +149,30 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Button_Shape;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Button_Shape (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Button_Shape_Calc_Button_Shape (
|
||||
id_button_shape 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
|
||||
);
|
||||
@@ -170,6 +206,172 @@ BEGIN
|
||||
SET v_has_filter_button_shape_name = CASE WHEN a_names_button_shape <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_button_shape_notes = CASE WHEN a_notes_button_shape <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Button_Shape t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Button_Shape (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Button_Shapes.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Button_Shape (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Button_Shape;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Button_Shapes
|
||||
IF v_has_filter_button_shape_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_button_shape, ',', a_debug);
|
||||
@@ -238,12 +440,12 @@ BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(BUTTON_SHAPES.id_button_shape)
|
||||
OR ISNULL(BUTTON_SHAPE.id_button_shape)
|
||||
OR (
|
||||
BUTTON_SHAPES.active = 0
|
||||
BUTTON_SHAPE.active = 0
|
||||
AND a_get_inactive_button_shape = 0
|
||||
)
|
||||
) THEN
|
||||
@@ -257,12 +459,12 @@ BEGIN
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Button_Shape IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(BUTTON_SHAPES.id_button_shape)
|
||||
OR ISNULL(BUTTON_SHAPE.id_button_shape)
|
||||
OR (
|
||||
BUTTON_SHAPES.active = 0
|
||||
BUTTON_SHAPE.active = 0
|
||||
AND a_get_inactive_button_shape = 0
|
||||
)
|
||||
;
|
||||
@@ -272,88 +474,140 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Button_Shape_Calc_Button_Shape (
|
||||
id_button_shape
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
Button_Shape_Id_Filter AS (
|
||||
SELECT BUTTON_SHAPES.id_button_shape
|
||||
SELECT BUTTON_SHAPE.id_button_shape
|
||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||
)
|
||||
, Button_Shape_Name_Filter AS (
|
||||
SELECT BUTTON_SHAPES.id_button_shape
|
||||
SELECT BUTTON_SHAPE.id_button_shape
|
||||
FROM tmp_Split_Name_Calc_Button_Shape t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON BUTTON_SHAPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON BUTTON_SHAPE.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Button_Shape_Notes_Filter AS (
|
||||
SELECT BUTTON_SHAPES.id_button_shape
|
||||
SELECT BUTTON_SHAPE.id_button_shape
|
||||
FROM tmp_Split_Notes_Calc_Button_Shape t_SPLIT_NOTES
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON BUTTON_SHAPES.name LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON BUTTON_SHAPE.name LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NOTES.substring, '') IS NOT NULL
|
||||
)
|
||||
, Button_Shape_Filters AS (
|
||||
SELECT
|
||||
BUTTON_SHAPES_COMBINED.id_button_shape
|
||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
||||
BUTTON_SHAPE_COMBINED.id_button_shape
|
||||
, MAX(BUTTON_SHAPE_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(BUTTON_SHAPE_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
, MAX(BUTTON_SHAPE_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
||||
FROM (
|
||||
SELECT
|
||||
BUTTON_SHAPES_ID_FILTER.id_button_shape
|
||||
BUTTON_SHAPE_ID_FILTER.id_button_shape
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 0 AS does_meet_notes_filter
|
||||
FROM Button_Shape_Id_Filter BUTTON_SHAPES_ID_FILTER
|
||||
FROM Button_Shape_Id_Filter BUTTON_SHAPE_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
BUTTON_SHAPES_NAME_FILTER.id_button_shape
|
||||
BUTTON_SHAPE_NAME_FILTER.id_button_shape
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
, 0 AS does_meet_notes_filter
|
||||
FROM Button_Shape_Name_Filter BUTTON_SHAPES_NAME_FILTER
|
||||
FROM Button_Shape_Name_Filter BUTTON_SHAPE_NAME_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
BUTTON_SHAPES_NOTES_FILTER.id_button_shape
|
||||
BUTTON_SHAPE_NOTES_FILTER.id_button_shape
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 1 AS does_meet_notes_filter
|
||||
FROM Button_Shape_Notes_Filter BUTTON_SHAPES_NOTES_FILTER
|
||||
) BUTTON_SHAPES_COMBINED
|
||||
GROUP BY BUTTON_SHAPES_COMBINED.id_button_shape
|
||||
FROM Button_Shape_Notes_Filter BUTTON_SHAPE_NOTES_FILTER
|
||||
) BUTTON_SHAPE_COMBINED
|
||||
GROUP BY BUTTON_SHAPE_COMBINED.id_button_shape
|
||||
)
|
||||
, Button_Shape_Access AS (
|
||||
SELECT
|
||||
BUTTON_SHAPE.id_button_shape
|
||||
, 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 BUTTON_SHAPE.id_button_shape
|
||||
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_button_shape
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||
LEFT JOIN fetchmetrics.DOG_Button_Shape_User_Link BUTTON_SHAPE_USER_LINK
|
||||
ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_USER_LINK.id_button_shape
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_button_shape = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR BUTTON_SHAPE_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Button_Shape t_USER
|
||||
ON BUTTON_SHAPE_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 BUTTON_SHAPE_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
BUTTON_SHAPES.id_button_shape
|
||||
BUTTON_SHAPE.id_button_shape
|
||||
, BUTTON_SHAPE_ACCESS.exists_valid_link
|
||||
, BUTTON_SHAPE_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_button_shape_id = 0
|
||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_id_filter, 0) = 1
|
||||
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_id_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_button_shape_name = 0
|
||||
AND v_has_filter_button_shape_notes = 0
|
||||
)
|
||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_notes_filter, 0) = 1
|
||||
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_notes_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPES
|
||||
LEFT JOIN Button_Shape_Filters BUTTON_SHAPES_FILTERS ON BUTTON_SHAPES.id_button_shape = BUTTON_SHAPES_FILTERS.id_button_shape
|
||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||
LEFT JOIN Button_Shape_Filters BUTTON_SHAPE_FILTERS ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_FILTERS.id_button_shape
|
||||
LEFT JOIN Button_Shape_Access BUTTON_SHAPE_ACCESS
|
||||
ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_ACCESS.id_button_shape
|
||||
AND BUTTON_SHAPE_ACCESS.index_link_in_button_shape = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_button_shape = 1
|
||||
OR (
|
||||
v_has_filter_button_shape_id = 1
|
||||
AND BUTTON_SHAPES_FILTERS.does_meet_id_filter = 1
|
||||
AND BUTTON_SHAPE_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_button_shape_name = 1
|
||||
AND BUTTON_SHAPES_FILTERS.does_meet_name_filter = 1
|
||||
AND BUTTON_SHAPE_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(BUTTON_SHAPE_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_button_shape = 1
|
||||
OR BUTTON_SHAPES.active = 1
|
||||
OR BUTTON_SHAPE.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -370,28 +624,45 @@ BEGIN
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
DELETE t_BUTTON_SHAPES
|
||||
FROM tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPES
|
||||
DELETE t_BUTTON_SHAPE
|
||||
FROM tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPE
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Button_Shape t_USER ON t_BUTTON_SHAPE.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_BUTTON_SHAPES.does_meet_id_filters = 0
|
||||
t_BUTTON_SHAPE.does_meet_id_filters = 0
|
||||
OR (
|
||||
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
t_BUTTON_SHAPES.does_meet_non_id_filters = 0
|
||||
t_BUTTON_SHAPE.does_meet_non_id_filters = 0
|
||||
OR (
|
||||
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_BUTTON_SHAPES.does_meet_id_filters = 0
|
||||
AND t_BUTTON_SHAPE.does_meet_id_filters = 0
|
||||
AND (
|
||||
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_BUTTON_SHAPES.does_meet_non_id_filters = 0
|
||||
AND t_BUTTON_SHAPE.does_meet_non_id_filters = 0
|
||||
AND (
|
||||
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -403,81 +674,6 @@ BEGIN
|
||||
|
||||
-- Calculated fields
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Button_Shape t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Button_Shape (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Button_Shapes.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
||||
@@ -512,17 +708,17 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_BUTTON_SHAPES.id_button_shape
|
||||
, BUTTON_SHAPES.code
|
||||
, BUTTON_SHAPES.name
|
||||
, BUTTON_SHAPES.notes
|
||||
, BUTTON_SHAPES.active
|
||||
, t_BUTTON_SHAPE.id_button_shape
|
||||
, BUTTON_SHAPE.code
|
||||
, BUTTON_SHAPE.name
|
||||
, BUTTON_SHAPE.notes
|
||||
, BUTTON_SHAPE.active
|
||||
|
||||
, t_BUTTON_SHAPES.does_meet_id_filters
|
||||
, t_BUTTON_SHAPES.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPES
|
||||
INNER JOIN tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPES ON BUTTON_SHAPES.id_button_shape = t_BUTTON_SHAPES.id_button_shape
|
||||
ORDER BY BUTTON_SHAPES.name
|
||||
, t_BUTTON_SHAPE.does_meet_id_filters
|
||||
, t_BUTTON_SHAPE.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||
INNER JOIN tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPE ON BUTTON_SHAPE.id_button_shape = t_BUTTON_SHAPE.id_button_shape
|
||||
ORDER BY BUTTON_SHAPE.name
|
||||
;
|
||||
COMMIT;
|
||||
|
||||
@@ -546,14 +742,13 @@ BEGIN
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 );
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Button_Shape;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -564,6 +759,9 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
SELECT *
|
||||
FROM fetchmetrics.DOG_Button_Shape
|
||||
;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_button_shape (
|
||||
'gripe ' -- a_guid
|
||||
@@ -573,6 +771,11 @@ CALL fetchmetrics.p_dog_calc_button_shape (
|
||||
, '' -- a_ids_button_shape
|
||||
, '' -- a_names_button_shape
|
||||
, '' -- a_notes_button_shape
|
||||
, 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
|
||||
|
||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_button_shape (
|
||||
, IN a_ids_button_shape TEXT
|
||||
, IN a_names_button_shape TEXT
|
||||
, IN a_notes_button_shape 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
|
||||
@@ -27,6 +32,9 @@ BEGIN
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -84,7 +92,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);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
/*
|
||||
SET a_get_all_button_shape := IFNULL(a_get_all_button_shape, 0);
|
||||
@@ -107,6 +117,11 @@ BEGIN
|
||||
, a_ids_button_shape
|
||||
, a_names_button_shape
|
||||
, a_notes_button_shape
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -233,6 +248,11 @@ BEGIN
|
||||
, a_ids_button_shape -- a_ids_button_shape
|
||||
, a_names_button_shape -- a_names_button_shape
|
||||
, a_notes_button_shape -- a_notes_button_shape
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 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 +270,11 @@ BEGIN
|
||||
, a_ids_button_shape -- a_ids_button_shape
|
||||
, a_names_button_shape -- a_names_button_shape
|
||||
, a_notes_button_shape -- a_notes_button_shape
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 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
|
||||
@@ -361,6 +386,11 @@ CALL fetchmetrics.p_dog_get_many_button_shape (
|
||||
, '' -- a_ids_button_shape
|
||||
, '' -- a_names_button_shape
|
||||
, '' -- a_notes_button_shape
|
||||
, 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
|
||||
@@ -376,6 +406,11 @@ CALL fetchmetrics.p_dog_get_many_button_shape (
|
||||
, '' -- a_ids_button_shape
|
||||
, 'pat,point' -- a_names_button_shape
|
||||
, 'pat,point' -- a_notes_button_shape
|
||||
, 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
|
||||
|
||||
@@ -19,6 +19,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_image (
|
||||
, IN a_get_inactive_image BIT
|
||||
, IN a_ids_image TEXT
|
||||
, IN a_names_image TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
@@ -36,9 +41,14 @@ BEGIN
|
||||
DECLARE v_has_filter_image_name BIT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(200);
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -93,10 +103,17 @@ 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_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' 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_ids_permission_required := (SELECT CONCAT(
|
||||
CONVERT(v_id_permission_dog_view, CHAR)
|
||||
, ','
|
||||
, CONVERT(v_id_permission_command_view, CHAR)
|
||||
));
|
||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||
|
||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
@@ -135,6 +152,11 @@ BEGIN
|
||||
, a_get_inactive_image
|
||||
, a_ids_image
|
||||
, a_names_image
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -146,7 +168,9 @@ BEGIN
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_ids_permission_required
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -157,6 +181,25 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Image;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Image (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_File_Type_Calc_Image (
|
||||
id_file_type INT NOT NULL
|
||||
@@ -166,10 +209,6 @@ BEGIN
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Dog_Calc_Image (
|
||||
id_dog INT NOT NULL
|
||||
, name VARCHAR(250)
|
||||
, appearance VARCHAR(1000)
|
||||
, mass_kg DECIMAL(7, 3)
|
||||
, notes TEXT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
@@ -179,6 +218,8 @@ BEGIN
|
||||
CREATE TEMPORARY TABLE tmp_Image_Calc_Image (
|
||||
id_image INT NOT NULL
|
||||
, id_file_type 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
|
||||
);
|
||||
@@ -207,6 +248,172 @@ BEGIN
|
||||
SET v_has_filter_image_id = CASE WHEN a_ids_image <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_image_name = CASE WHEN a_names_image <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Image t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Image (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Images.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Image (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Image;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Image t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error_Calc_Image t_ERROR;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
|
||||
-- File Types
|
||||
IF v_has_filter_file_type_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_file_type, ',', a_debug);
|
||||
@@ -286,72 +493,6 @@ BEGIN
|
||||
ELSEIF EXISTS ()
|
||||
*/
|
||||
ELSE
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'File_Type Filters';
|
||||
WITH
|
||||
File_Type_Id_Filter AS (
|
||||
SELECT FILE_TYPES.id_file_type
|
||||
FROM tmp_Split_Id_Calc_Image t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.CORE_File_Type FILE_TYPES ON t_SPLIT_ID.as_int = FILE_TYPES.id_file_type
|
||||
)
|
||||
, File_Type_Name_Filter AS (
|
||||
SELECT FILE_TYPES.id_file_type
|
||||
FROM tmp_Split_Name_Calc_Image t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.CORE_File_Type FILE_TYPES ON FILE_TYPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, File_Type_Filters AS (
|
||||
SELECT
|
||||
FILE_TYPES_COMBINED.id_file_type
|
||||
, MAX(FILE_TYPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(FILE_TYPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
FILE_TYPES_ID_FILTER.id_file_type
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM File_Type_Id_Filter FILE_TYPES_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
FILE_TYPES_NAME_FILTER.id_file_type
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM File_Type_Name_Filter FILE_TYPES_NAME_FILTER
|
||||
) FILE_TYPES_COMBINED
|
||||
GROUP BY FILE_TYPES_COMBINED.id_file_type
|
||||
)
|
||||
SELECT
|
||||
FILE_TYPES.id_file_type
|
||||
, CASE WHEN
|
||||
v_has_filter_file_type_id = 0
|
||||
OR FILE_TYPES_FILTERS.does_meet_id_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_file_type_name = 0
|
||||
)
|
||||
OR FILE_TYPES_FILTERS.does_meet_name_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.CORE_File_Type FILE_TYPES
|
||||
LEFT JOIN File_Type_Filters FILE_TYPES_FILTERS ON FILE_TYPES.id_file_type = FILE_TYPES_FILTERS.id_file_type
|
||||
WHERE
|
||||
(
|
||||
a_get_all_file_type = 1
|
||||
OR (
|
||||
v_has_filter_file_type_id = 1
|
||||
AND FILE_TYPES_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_file_type_name = 1
|
||||
AND FILE_TYPES_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_file_type = 1
|
||||
OR FILE_TYPES.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
INSERT INTO tmp_File_Type_Calc_Image (
|
||||
id_file_type
|
||||
, does_meet_id_filters
|
||||
@@ -439,6 +580,11 @@ BEGIN
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -448,13 +594,18 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_dog(
|
||||
CALL fetchmetrics.p_dog_calc_dog (
|
||||
a_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, a_get_all_dog -- a_get_all_dog
|
||||
, a_get_inactive_dog -- a_get_inactive_dog
|
||||
, a_ids_dog -- a_ids_dog
|
||||
, a_names_dog -- a_names_dog
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -465,10 +616,6 @@ BEGIN
|
||||
|
||||
INSERT INTO tmp_Dog_Calc_Image (
|
||||
id_dog
|
||||
, name
|
||||
, appearance
|
||||
, mass_kg
|
||||
, notes
|
||||
, active
|
||||
|
||||
, does_meet_id_filters
|
||||
@@ -476,10 +623,6 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
DOG_T.id_dog
|
||||
, DOG_T.name
|
||||
, DOG_T.appearance
|
||||
, DOG_T.mass_kg
|
||||
, DOG_T.notes
|
||||
, DOG_T.active
|
||||
|
||||
, DOG_T.does_meet_id_filters
|
||||
@@ -575,6 +718,9 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Image_Calc_Image (
|
||||
id_image
|
||||
, id_file_type
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
@@ -612,8 +758,55 @@ BEGIN
|
||||
) IMAGES_COMBINED
|
||||
GROUP BY IMAGES_COMBINED.id_image
|
||||
)
|
||||
, Image_Access AS (
|
||||
SELECT
|
||||
IMAGES.id_image
|
||||
, 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 IMAGES.id_image
|
||||
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_image
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Image IMAGES
|
||||
LEFT JOIN fetchmetrics.DOG_Image_User_Link IMAGES_USER_LINK
|
||||
ON IMAGES.id_image = IMAGES_USER_LINK.id_image
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_image = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR IMAGES_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Image t_USER
|
||||
ON IMAGES_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 IMAGES_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
IMAGES.id_image
|
||||
, IMAGES.id_file_type
|
||||
, IFNULL(IMAGES_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, IMAGES_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_image_id = 0
|
||||
OR IFNULL(IMAGES_FILTERS.does_meet_id_filter, 0) = 1
|
||||
@@ -628,6 +821,9 @@ BEGIN
|
||||
INNER JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
||||
LEFT JOIN tmp_Dog_Calc_Image t_DOG ON IMAGES.id_dog = t_DOG.id_dog
|
||||
LEFT JOIN Image_Filters IMAGES_FILTERS ON IMAGES.id_image = IMAGES_FILTERS.id_image
|
||||
LEFT JOIN Image_Access IMAGES_ACCESS
|
||||
ON IMAGES.id_image = IMAGES_ACCESS.id_image
|
||||
AND IMAGES_ACCESS.index_link_in_image = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_image = 1
|
||||
@@ -640,6 +836,7 @@ BEGIN
|
||||
AND IMAGES_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(IMAGES_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_image = 1
|
||||
OR IMAGES.active = 1
|
||||
@@ -661,12 +858,17 @@ BEGIN
|
||||
DELETE t_IMAGES
|
||||
FROM tmp_Image_Calc_Image t_IMAGES
|
||||
LEFT JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON t_IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Image t_USER ON t_IMAGES.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_IMAGES.does_meet_id_filters = 0
|
||||
OR IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
||||
OR (
|
||||
t_IMAGES.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
@@ -674,17 +876,29 @@ BEGIN
|
||||
AND (
|
||||
t_IMAGES.does_meet_non_id_filters = 0
|
||||
OR IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
||||
OR (
|
||||
t_IMAGES.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_IMAGES.does_meet_id_filters = 0
|
||||
AND IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
||||
AND (
|
||||
t_IMAGES.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_IMAGES.does_meet_non_id_filters = 0
|
||||
AND IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
||||
AND (
|
||||
t_IMAGES.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -696,80 +910,6 @@ BEGIN
|
||||
|
||||
-- Calculated fields
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Image t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Image (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Images.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
@@ -841,8 +981,11 @@ BEGIN
|
||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||
SELECT * FROM tmp_Image_Calc_Image;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 );
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_dog (
|
||||
a_guid -- a_guid
|
||||
, 0 -- debug
|
||||
);
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Image;
|
||||
@@ -850,6 +993,7 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Image;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -860,6 +1004,12 @@ DELIMITER ;
|
||||
|
||||
/*
|
||||
|
||||
SELECT *
|
||||
FROM fetchmetrics.DOG_Image
|
||||
;
|
||||
SELECT *
|
||||
FROM fetchmetrics.DOG_Image_User_Link
|
||||
;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_image (
|
||||
'grope ' -- a_guid
|
||||
@@ -876,6 +1026,11 @@ CALL fetchmetrics.p_dog_calc_image (
|
||||
, 0 -- a_get_inactive_image
|
||||
, '' -- a_ids_image
|
||||
, '' -- a_names_image
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 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
|
||||
|
||||
@@ -18,6 +18,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_image (
|
||||
, IN a_get_inactive_image BIT
|
||||
, IN a_ids_image TEXT
|
||||
, IN a_names_image TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_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
|
||||
@@ -32,9 +37,14 @@ BEGIN
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(200);
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -90,9 +100,17 @@ 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_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' 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_ids_permission_required := (SELECT CONCAT(
|
||||
CONVERT(v_id_permission_dog_view, CHAR)
|
||||
, ','
|
||||
, CONVERT(v_id_permission_command_view, CHAR)
|
||||
));
|
||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
/*
|
||||
SET a_get_all_file_type := IFNULL(a_get_all_file_type, 0);
|
||||
@@ -142,7 +160,9 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_ids_permission_required
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -183,7 +203,7 @@ BEGIN
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -202,7 +222,7 @@ BEGIN
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -210,15 +230,20 @@ BEGIN
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
, v_is_super_user
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = V_GUID
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
@@ -265,6 +290,11 @@ BEGIN
|
||||
, a_get_inactive_image -- a_get_inactive_image
|
||||
, a_ids_image -- a_ids_image
|
||||
, a_names_image -- a_names_image
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_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
|
||||
@@ -289,6 +319,11 @@ BEGIN
|
||||
, a_get_inactive_image -- a_get_inactive_image
|
||||
, a_ids_image -- a_ids_image
|
||||
, a_names_image -- a_names_image
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_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
|
||||
@@ -416,6 +451,11 @@ CALL fetchmetrics.p_dog_get_many_image (
|
||||
, 0 -- a_get_inactive_image
|
||||
, '' -- a_ids_image
|
||||
, '' -- a_names_image
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
@@ -439,6 +479,11 @@ CALL fetchmetrics.p_dog_get_many_image (
|
||||
, 0 -- a_get_inactive_image
|
||||
, '' -- a_ids_image
|
||||
, 'pat,point' -- a_names_image
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, 'pat,point' -- a_names_user
|
||||
, 'pat,point' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
|
||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_distraction_type (
|
||||
, IN a_get_inactive_distraction_type BIT
|
||||
, IN a_ids_distraction_type TEXT
|
||||
, IN a_names_distraction_type 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
|
||||
@@ -29,6 +34,9 @@ BEGIN
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -85,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 );
|
||||
|
||||
@@ -109,6 +119,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_type
|
||||
, a_ids_distraction_type
|
||||
, a_names_distraction_type
|
||||
, 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
|
||||
@@ -129,9 +144,30 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Distraction_Type (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Distraction_Type_Calc_Distraction_Type (
|
||||
id_type INT NOT NULL
|
||||
, exists_valid_link BIT NOT NULL
|
||||
, id_user INT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
);
|
||||
@@ -158,6 +194,169 @@ BEGIN
|
||||
SET v_has_filter_distraction_type_id = CASE WHEN a_ids_distraction_type <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_distraction_type_name = CASE WHEN a_names_distraction_type <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Type t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Type (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Distraction_Types.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Distraction_Type (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Distraction_Types
|
||||
IF v_has_filter_distraction_type_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_type, ',', a_debug);
|
||||
@@ -205,12 +404,12 @@ BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DISTRACTION_TYPES.id_type)
|
||||
OR ISNULL(DISTRACTION_TYPE.id_type)
|
||||
OR (
|
||||
DISTRACTION_TYPES.active = 0
|
||||
DISTRACTION_TYPE.active = 0
|
||||
AND a_get_inactive_distraction_type = 0
|
||||
)
|
||||
) THEN
|
||||
@@ -224,12 +423,12 @@ BEGIN
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Distraction_Type IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DISTRACTION_TYPES.id_type)
|
||||
OR ISNULL(DISTRACTION_TYPE.id_type)
|
||||
OR (
|
||||
DISTRACTION_TYPES.active = 0
|
||||
DISTRACTION_TYPE.active = 0
|
||||
AND a_get_inactive_distraction_type = 0
|
||||
)
|
||||
;
|
||||
@@ -239,70 +438,122 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Distraction_Type_Calc_Distraction_Type (
|
||||
id_type
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
Distraction_Type_Id_Filter AS (
|
||||
SELECT DISTRACTION_TYPES.id_type
|
||||
SELECT DISTRACTION_TYPE.id_type
|
||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||
)
|
||||
, Distraction_Type_Name_Filter AS (
|
||||
SELECT DISTRACTION_TYPES.id_type
|
||||
SELECT DISTRACTION_TYPE.id_type
|
||||
FROM tmp_Split_Name_Calc_Distraction_Type t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON DISTRACTION_TYPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON DISTRACTION_TYPE.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Distraction_Type_Filters AS (
|
||||
SELECT
|
||||
DISTRACTION_TYPES_COMBINED.id_type
|
||||
, MAX(DISTRACTION_TYPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(DISTRACTION_TYPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
DISTRACTION_TYPE_COMBINED.id_type
|
||||
, MAX(DISTRACTION_TYPE_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(DISTRACTION_TYPE_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
DISTRACTION_TYPES_ID_FILTER.id_type
|
||||
DISTRACTION_TYPE_ID_FILTER.id_type
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Distraction_Type_Id_Filter DISTRACTION_TYPES_ID_FILTER
|
||||
FROM Distraction_Type_Id_Filter DISTRACTION_TYPE_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
DISTRACTION_TYPES_NAME_FILTER.id_type
|
||||
DISTRACTION_TYPE_NAME_FILTER.id_type
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Distraction_Type_Name_Filter DISTRACTION_TYPES_NAME_FILTER
|
||||
) DISTRACTION_TYPES_COMBINED
|
||||
GROUP BY DISTRACTION_TYPES_COMBINED.id_type
|
||||
FROM Distraction_Type_Name_Filter DISTRACTION_TYPE_NAME_FILTER
|
||||
) DISTRACTION_TYPE_COMBINED
|
||||
GROUP BY DISTRACTION_TYPE_COMBINED.id_type
|
||||
)
|
||||
, Distraction_Type_Access AS (
|
||||
SELECT
|
||||
DISTRACTION_TYPE.id_type
|
||||
, 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 DISTRACTION_TYPE.id_type
|
||||
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_distraction_type
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type_User_Link DISTRACTION_TYPE_USER_LINK
|
||||
ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_USER_LINK.id_distraction_type
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_distraction_type = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR DISTRACTION_TYPE_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Type t_USER
|
||||
ON DISTRACTION_TYPE_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 DISTRACTION_TYPE_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
DISTRACTION_TYPES.id_type
|
||||
DISTRACTION_TYPE.id_type
|
||||
, IFNULL(DISTRACTION_TYPE_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, DISTRACTION_TYPE_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_distraction_type_id = 0
|
||||
OR IFNULL(DISTRACTION_TYPES_FILTERS.does_meet_id_filter, 0) = 1
|
||||
OR IFNULL(DISTRACTION_TYPE_FILTERS.does_meet_id_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_distraction_type_name = 0
|
||||
)
|
||||
OR IFNULL(DISTRACTION_TYPES_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(DISTRACTION_TYPE_FILTERS.does_meet_name_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES
|
||||
LEFT JOIN Distraction_Type_Filters DISTRACTION_TYPES_FILTERS ON DISTRACTION_TYPES.id_type = DISTRACTION_TYPES_FILTERS.id_type
|
||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||
LEFT JOIN Distraction_Type_Filters DISTRACTION_TYPE_FILTERS ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_FILTERS.id_type
|
||||
LEFT JOIN Distraction_Type_Access DISTRACTION_TYPE_ACCESS
|
||||
ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_ACCESS.id_type
|
||||
AND DISTRACTION_TYPE_ACCESS.index_link_in_distraction_type = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_distraction_type = 1
|
||||
OR (
|
||||
v_has_filter_distraction_type_id = 1
|
||||
AND DISTRACTION_TYPES_FILTERS.does_meet_id_filter = 1
|
||||
AND DISTRACTION_TYPE_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_distraction_type_name = 1
|
||||
AND DISTRACTION_TYPES_FILTERS.does_meet_name_filter = 1
|
||||
AND DISTRACTION_TYPE_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(DISTRACTION_TYPE_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_distraction_type = 1
|
||||
OR DISTRACTION_TYPES.active = 1
|
||||
OR DISTRACTION_TYPE.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -318,28 +569,45 @@ BEGIN
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Type t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
DELETE t_DISTRACTION_TYPES
|
||||
FROM tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPES
|
||||
DELETE t_DISTRACTION_TYPE
|
||||
FROM tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPE
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Type t_USER ON t_DISTRACTION_TYPE.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_DISTRACTION_TYPES.does_meet_id_filters = 0
|
||||
t_DISTRACTION_TYPE.does_meet_id_filters = 0
|
||||
OR (
|
||||
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
t_DISTRACTION_TYPES.does_meet_non_id_filters = 0
|
||||
t_DISTRACTION_TYPE.does_meet_non_id_filters = 0
|
||||
OR (
|
||||
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_DISTRACTION_TYPES.does_meet_id_filters = 0
|
||||
AND t_DISTRACTION_TYPE.does_meet_id_filters = 0
|
||||
AND (
|
||||
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_DISTRACTION_TYPES.does_meet_non_id_filters = 0
|
||||
AND t_DISTRACTION_TYPE.does_meet_non_id_filters = 0
|
||||
AND (
|
||||
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -351,80 +619,6 @@ BEGIN
|
||||
|
||||
-- Calculated fields
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Type t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Type (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Distraction_Types.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
@@ -459,16 +653,16 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_DISTRACTION_TYPES.id_type
|
||||
, DISTRACTION_TYPES.code
|
||||
, DISTRACTION_TYPES.name
|
||||
, DISTRACTION_TYPES.active
|
||||
, t_DISTRACTION_TYPE.id_type
|
||||
, DISTRACTION_TYPE.code
|
||||
, DISTRACTION_TYPE.name
|
||||
, DISTRACTION_TYPE.active
|
||||
|
||||
, t_DISTRACTION_TYPES.does_meet_id_filters
|
||||
, t_DISTRACTION_TYPES.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES
|
||||
INNER JOIN tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPES ON DISTRACTION_TYPES.id_type = t_DISTRACTION_TYPES.id_type
|
||||
ORDER BY DISTRACTION_TYPES.name
|
||||
, t_DISTRACTION_TYPE.does_meet_id_filters
|
||||
, t_DISTRACTION_TYPE.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||
INNER JOIN tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPE ON DISTRACTION_TYPE.id_type = t_DISTRACTION_TYPE.id_type
|
||||
ORDER BY DISTRACTION_TYPE.name
|
||||
;
|
||||
COMMIT;
|
||||
|
||||
@@ -499,6 +693,7 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -517,6 +712,11 @@ CALL fetchmetrics.p_dog_calc_distraction_type (
|
||||
, 0 -- a_get_inactive_distraction_type
|
||||
, '' -- a_ids_distraction_type
|
||||
, '' -- a_names_distraction_type
|
||||
, 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
|
||||
|
||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_distraction_type (
|
||||
, IN a_get_inactive_distraction_type BIT
|
||||
, IN a_ids_distraction_type TEXT
|
||||
, IN a_names_distraction_type TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
@@ -104,6 +109,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_type
|
||||
, a_ids_distraction_type
|
||||
, a_names_distraction_type
|
||||
, 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
|
||||
@@ -228,6 +238,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
||||
, a_ids_distraction_type -- a_ids_distraction_type
|
||||
, a_names_distraction_type -- a_names_distraction_type
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -244,6 +259,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
||||
, a_ids_distraction_type -- a_ids_distraction_type
|
||||
, a_names_distraction_type -- a_names_distraction_type
|
||||
, a_get_all_user
|
||||
, 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
|
||||
@@ -351,6 +371,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_type (
|
||||
, 0 -- a_get_inactive_distraction_type
|
||||
, '' -- a_ids_distraction_type
|
||||
, '' -- a_names_distraction_type
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
@@ -365,6 +390,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_type (
|
||||
, 0 -- a_get_inactive_distraction_type
|
||||
, '' -- a_ids_distraction_type
|
||||
, 'pat,point' -- a_names_distraction_type
|
||||
, 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
|
||||
|
||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_distraction_intensity_level (
|
||||
, IN a_get_inactive_distraction_intensity_level BIT
|
||||
, IN a_ids_distraction_intensity_level TEXT
|
||||
, IN a_names_distraction_intensity_level TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
@@ -26,9 +31,14 @@ BEGIN
|
||||
DECLARE v_has_filter_distraction_intensity_level_name BIT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(200);
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -61,19 +71,21 @@ BEGIN
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR
|
||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
IF a_show_errors = 1 THEN
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR
|
||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||
END;
|
||||
@@ -83,9 +95,17 @@ 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_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' 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_ids_permission_required := (SELECT CONCAT(
|
||||
CONVERT(v_id_permission_dog_view, CHAR)
|
||||
, ','
|
||||
, CONVERT(v_id_permission_command_view, CHAR)
|
||||
));
|
||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||
|
||||
|
||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||
|
||||
@@ -109,6 +129,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_intensity_level
|
||||
, a_ids_distraction_intensity_level
|
||||
, a_names_distraction_intensity_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -120,7 +145,9 @@ BEGIN
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_ids_permission_required
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -129,9 +156,30 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Distraction_Intensity_Level (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
||||
id_intensity_level INT NOT NULL
|
||||
, exists_valid_link BIT NOT NULL
|
||||
, id_user INT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
);
|
||||
@@ -158,7 +206,171 @@ BEGIN
|
||||
SET v_has_filter_distraction_intensity_level_id = CASE WHEN a_ids_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_distraction_intensity_level_name = CASE WHEN a_names_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
-- Distraction_Intensity_Levels
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Intensity_Level (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and DISTRACTION_INTENSITY_LEVEL.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Distraction_Intensity_Level (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- DISTRACTION_INTENSITY_LEVEL
|
||||
IF v_has_filter_distraction_intensity_level_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_intensity_level, ',', a_debug);
|
||||
|
||||
@@ -205,12 +417,12 @@ BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVELS.id_intensity_level)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL.id_intensity_level)
|
||||
OR (
|
||||
DISTRACTION_INTENSITY_LEVELS.active = 0
|
||||
DISTRACTION_INTENSITY_LEVEL.active = 0
|
||||
AND a_get_inactive_distraction_intensity_level = 0
|
||||
)
|
||||
) THEN
|
||||
@@ -224,12 +436,12 @@ BEGIN
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Distraction_Intensity_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVELS.id_intensity_level)
|
||||
OR ISNULL(DISTRACTION_INTENSITY_LEVEL.id_intensity_level)
|
||||
OR (
|
||||
DISTRACTION_INTENSITY_LEVELS.active = 0
|
||||
DISTRACTION_INTENSITY_LEVEL.active = 0
|
||||
AND a_get_inactive_distraction_intensity_level = 0
|
||||
)
|
||||
;
|
||||
@@ -239,70 +451,122 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
||||
id_intensity_level
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
Distraction_Intensity_Level_Id_Filter AS (
|
||||
SELECT DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
SELECT DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
)
|
||||
, Distraction_Intensity_Level_Name_Filter AS (
|
||||
SELECT DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
SELECT DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
FROM tmp_Split_Name_Calc_Distraction_Intensity_Level t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON DISTRACTION_INTENSITY_LEVELS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON DISTRACTION_INTENSITY_LEVEL.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Distraction_Intensity_Level_Filters AS (
|
||||
SELECT
|
||||
DISTRACTION_INTENSITY_LEVELS_COMBINED.id_intensity_level
|
||||
, MAX(DISTRACTION_INTENSITY_LEVELS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(DISTRACTION_INTENSITY_LEVELS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
DISTRACTION_INTENSITY_LEVEL_COMBINED.id_intensity_level
|
||||
, MAX(DISTRACTION_INTENSITY_LEVEL_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(DISTRACTION_INTENSITY_LEVEL_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
DISTRACTION_INTENSITY_LEVELS_ID_FILTER.id_intensity_level
|
||||
DISTRACTION_INTENSITY_LEVEL_ID_FILTER.id_intensity_level
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Distraction_Intensity_Level_Id_Filter DISTRACTION_INTENSITY_LEVELS_ID_FILTER
|
||||
FROM Distraction_Intensity_Level_Id_Filter DISTRACTION_INTENSITY_LEVEL_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
DISTRACTION_INTENSITY_LEVELS_NAME_FILTER.id_intensity_level
|
||||
DISTRACTION_INTENSITY_LEVEL_NAME_FILTER.id_intensity_level
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Distraction_Intensity_Level_Name_Filter DISTRACTION_INTENSITY_LEVELS_NAME_FILTER
|
||||
) DISTRACTION_INTENSITY_LEVELS_COMBINED
|
||||
GROUP BY DISTRACTION_INTENSITY_LEVELS_COMBINED.id_intensity_level
|
||||
FROM Distraction_Intensity_Level_Name_Filter DISTRACTION_INTENSITY_LEVEL_NAME_FILTER
|
||||
) DISTRACTION_INTENSITY_LEVEL_COMBINED
|
||||
GROUP BY DISTRACTION_INTENSITY_LEVEL_COMBINED.id_intensity_level
|
||||
)
|
||||
, Distraction_Intensity_Level_Access AS (
|
||||
SELECT
|
||||
DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
, 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 DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
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_distraction_intensity_level
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level_User_Link DISTRACTION_INTENSITY_LEVEL_USER_LINK
|
||||
ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_USER_LINK.id_intensity_level
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_distraction_intensity_level = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR DISTRACTION_INTENSITY_LEVEL_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Intensity_Level t_USER
|
||||
ON DISTRACTION_INTENSITY_LEVEL_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 DISTRACTION_INTENSITY_LEVEL_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
, IFNULL(DISTRACTION_INTENSITY_LEVEL_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, DISTRACTION_INTENSITY_LEVEL_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_distraction_intensity_level_id = 0
|
||||
OR IFNULL(DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_id_filter, 0) = 1
|
||||
OR IFNULL(DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_id_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_distraction_intensity_level_name = 0
|
||||
)
|
||||
OR IFNULL(DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_name_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS
|
||||
LEFT JOIN Distraction_Intensity_Level_Filters DISTRACTION_INTENSITY_LEVELS_FILTERS ON DISTRACTION_INTENSITY_LEVELS.id_intensity_level = DISTRACTION_INTENSITY_LEVELS_FILTERS.id_intensity_level
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||
LEFT JOIN Distraction_Intensity_Level_Filters DISTRACTION_INTENSITY_LEVEL_FILTERS ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_FILTERS.id_intensity_level
|
||||
LEFT JOIN Distraction_Intensity_Level_Access DISTRACTION_INTENSITY_LEVEL_ACCESS
|
||||
ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_ACCESS.id_intensity_level
|
||||
AND DISTRACTION_INTENSITY_LEVEL_ACCESS.index_link_in_distraction_intensity_level = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_distraction_intensity_level = 1
|
||||
OR (
|
||||
v_has_filter_distraction_intensity_level_id = 1
|
||||
AND DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_id_filter = 1
|
||||
AND DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_distraction_intensity_level_name = 1
|
||||
AND DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_name_filter = 1
|
||||
AND DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(DISTRACTION_INTENSITY_LEVEL_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_distraction_intensity_level = 1
|
||||
OR DISTRACTION_INTENSITY_LEVELS.active = 1
|
||||
OR DISTRACTION_INTENSITY_LEVEL.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -312,119 +576,62 @@ BEGIN
|
||||
DELETE FROM tmp_Split_Name_Calc_Distraction_Intensity_Level;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get Distraction_Intensity_Levels ';
|
||||
SELECT 'After get DISTRACTION_INTENSITY_LEVEL ';
|
||||
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
DELETE t_DISTRACTION_INTENSITY_LEVELS
|
||||
FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVELS
|
||||
DELETE t_DISTRACTION_INTENSITY_LEVEL
|
||||
FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVEL
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Intensity_Level t_USER ON t_DISTRACTION_INTENSITY_LEVEL.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters = 0
|
||||
t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters = 0
|
||||
OR (
|
||||
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters = 0
|
||||
t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters = 0
|
||||
OR (
|
||||
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters = 0
|
||||
AND t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters = 0
|
||||
AND (
|
||||
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters = 0
|
||||
AND t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters = 0
|
||||
AND (
|
||||
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After filter Distraction_Intensity_Levels';
|
||||
SELECT 'After filter DISTRACTION_INTENSITY_LEVEL';
|
||||
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
|
||||
-- Calculated fields
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Intensity_Level (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Distraction_Intensity_Levels.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
@@ -446,7 +653,7 @@ BEGIN
|
||||
|
||||
-- Outputs
|
||||
START TRANSACTION;
|
||||
-- Distraction_Intensity_Levels
|
||||
-- DISTRACTION_INTENSITY_LEVEL
|
||||
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level_Temp (
|
||||
guid
|
||||
, id_intensity_level
|
||||
@@ -459,16 +666,16 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
, DISTRACTION_INTENSITY_LEVELS.code
|
||||
, DISTRACTION_INTENSITY_LEVELS.name
|
||||
, DISTRACTION_INTENSITY_LEVELS.active
|
||||
, t_DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
, DISTRACTION_INTENSITY_LEVEL.code
|
||||
, DISTRACTION_INTENSITY_LEVEL.name
|
||||
, DISTRACTION_INTENSITY_LEVEL.active
|
||||
|
||||
, t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters
|
||||
, t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS
|
||||
INNER JOIN tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVELS ON DISTRACTION_INTENSITY_LEVELS.id_intensity_level = t_DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
||||
ORDER BY DISTRACTION_INTENSITY_LEVELS.name
|
||||
, t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters
|
||||
, t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||
INNER JOIN tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVEL ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = t_DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||
ORDER BY DISTRACTION_INTENSITY_LEVEL.name
|
||||
;
|
||||
COMMIT;
|
||||
|
||||
@@ -499,6 +706,7 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -517,6 +725,11 @@ CALL fetchmetrics.p_dog_calc_distraction_intensity_level (
|
||||
, 0 -- a_get_inactive_distraction_intensity_level
|
||||
, '' -- a_ids_distraction_intensity_level
|
||||
, '' -- a_names_distraction_intensity_level
|
||||
, 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
|
||||
|
||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
||||
, IN a_get_inactive_distraction_intensity_level BIT
|
||||
, IN a_ids_distraction_intensity_level TEXT
|
||||
, IN a_names_distraction_intensity_level 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
|
||||
@@ -81,7 +86,6 @@ BEGIN
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
@@ -104,6 +108,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_intensity_level
|
||||
, a_ids_distraction_intensity_level
|
||||
, a_names_distraction_intensity_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -115,7 +124,6 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -140,82 +148,6 @@ BEGIN
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Distraction_Intensity_Levels.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Call Distraction_Intensity_Level Calc
|
||||
@@ -228,6 +160,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
||||
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
||||
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -244,6 +181,11 @@ BEGIN
|
||||
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
||||
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
||||
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -283,15 +225,6 @@ BEGIN
|
||||
SELECT * FROM tmp_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Distraction_Intensity_Level;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
@@ -351,6 +284,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
||||
, 0 -- a_get_inactive_distraction_intensity_level
|
||||
, '' -- a_ids_distraction_intensity_level
|
||||
, '' -- a_names_distraction_intensity_level
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
@@ -365,6 +303,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
||||
, 0 -- a_get_inactive_distraction_intensity_level
|
||||
, '' -- a_ids_distraction_intensity_level
|
||||
, 'pat,point' -- a_names_distraction_intensity_level
|
||||
, 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
|
||||
|
||||
@@ -12,7 +12,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_response_quality_metric (
|
||||
, IN a_ids_metric TEXT
|
||||
-- , IN a_ids_unit_measurement_metric TEXT
|
||||
, IN a_names_metric 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
|
||||
@@ -28,9 +32,14 @@ BEGIN
|
||||
DECLARE v_has_filter_response_quality_metric_name BIT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(200);
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -63,19 +72,21 @@ BEGIN
|
||||
WHERE MET.code = 'MYSQL_ERROR'
|
||||
;
|
||||
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_RQM t_ERROR
|
||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
IF a_show_errors = 1 THEN
|
||||
SELECT
|
||||
t_ERROR.id_error
|
||||
, t_ERROR.id_type
|
||||
, t_ERROR.code
|
||||
, ERROR_TYPE.name
|
||||
, ERROR_TYPE.description
|
||||
, ERROR_TYPE.is_breaking_error
|
||||
, ERROR_TYPE.background_colour
|
||||
, ERROR_TYPE.text_colour
|
||||
, t_ERROR.msg
|
||||
FROM tmp_Msg_Error_Calc_RQM t_ERROR
|
||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||
END;
|
||||
@@ -85,9 +96,17 @@ 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_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' 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_ids_permission_required := (SELECT CONCAT(
|
||||
CONVERT(v_id_permission_dog_view, CHAR)
|
||||
, ','
|
||||
, CONVERT(v_id_permission_command_view, CHAR)
|
||||
));
|
||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||
|
||||
|
||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||
|
||||
@@ -110,7 +129,11 @@ BEGIN
|
||||
, a_get_inactive_metric
|
||||
, a_ids_metric
|
||||
, a_names_metric
|
||||
|
||||
, 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
|
||||
@@ -122,7 +145,9 @@ BEGIN
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_ids_permission_required
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -131,6 +156,25 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_RQM;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_RQM (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Response_Quality_Metric_Calc_RQM (
|
||||
id_metric INT NOT NULL
|
||||
@@ -140,6 +184,8 @@ BEGIN
|
||||
, value_min DOUBLE
|
||||
, value_max DOUBLE
|
||||
, active BIT
|
||||
, exists_valid_link BIT NOT NULL
|
||||
, id_user INT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
);
|
||||
@@ -166,6 +212,169 @@ BEGIN
|
||||
SET v_has_filter_response_quality_metric_id := CASE WHEN a_ids_metric <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_response_quality_metric_name := CASE WHEN a_names_metric <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_RQM t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_RQM (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Button Icons.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_RQM (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_RQM;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Response Quality Metrics
|
||||
IF v_has_filter_response_quality_metric_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_metric, ',', a_debug);
|
||||
@@ -245,78 +454,6 @@ BEGIN
|
||||
ELSEIF EXISTS ()
|
||||
*/
|
||||
ELSE
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Response_Quality_Metric Filters';
|
||||
WITH
|
||||
Response_Quality_Metric_Id_Filter AS (
|
||||
SELECT RESPONSE_QUALITY_METRIC.id_metric
|
||||
FROM tmp_Split_Id_Calc_RQM t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_SPLIT_ID.as_int = RESPONSE_QUALITY_METRIC.id_metric
|
||||
)
|
||||
, Response_Quality_Metric_Name_Filter AS (
|
||||
SELECT RESPONSE_QUALITY_METRIC.id_metric
|
||||
FROM tmp_Split_Name_Calc_RQM t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON RESPONSE_QUALITY_METRIC.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Response_Quality_Metric_Filters AS (
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
||||
, MAX(RESPONSE_QUALITY_METRIC_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(RESPONSE_QUALITY_METRIC_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC_ID_FILTER.id_metric
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Response_Quality_Metric_Id_Filter RESPONSE_QUALITY_METRIC_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC_NAME_FILTER.id_metric
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Response_Quality_Metric_Name_Filter RESPONSE_QUALITY_METRIC_NAME_FILTER
|
||||
) RESPONSE_QUALITY_METRIC_COMBINED
|
||||
GROUP BY RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
||||
)
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC.id_metric
|
||||
, RESPONSE_QUALITY_METRIC.id_unit_measurement
|
||||
, RESPONSE_QUALITY_METRIC.code
|
||||
, RESPONSE_QUALITY_METRIC.name
|
||||
, RESPONSE_QUALITY_METRIC.value_min
|
||||
, RESPONSE_QUALITY_METRIC.value_max
|
||||
, RESPONSE_QUALITY_METRIC.active
|
||||
, CASE WHEN
|
||||
v_has_filter_response_quality_metric_id = 0
|
||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_response_quality_metric_name = 0
|
||||
)
|
||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
||||
LEFT JOIN Response_Quality_Metric_Filters RESPONSE_QUALITY_METRIC_FILTERS ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_FILTERS.id_metric
|
||||
WHERE
|
||||
(
|
||||
a_get_all_metric = 1
|
||||
OR (
|
||||
v_has_filter_response_quality_metric_id = 1
|
||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_response_quality_metric_name = 0
|
||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_metric = 1
|
||||
OR RESPONSE_QUALITY_METRIC.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
INSERT INTO tmp_Response_Quality_Metric_Calc_RQM (
|
||||
id_metric
|
||||
, id_unit_measurement
|
||||
@@ -325,6 +462,8 @@ BEGIN
|
||||
, value_min
|
||||
, value_max
|
||||
, active
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
@@ -360,6 +499,50 @@ BEGIN
|
||||
) RESPONSE_QUALITY_METRIC_COMBINED
|
||||
GROUP BY RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
||||
)
|
||||
, Response_Quality_Metric_Access AS (
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC.id_metric
|
||||
, 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 RESPONSE_QUALITY_METRIC.id_metric
|
||||
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_metric
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
||||
LEFT JOIN fetchmetrics.DOG_Response_Quality_Metric_User_Link RESPONSE_QUALITY_METRIC_USER_LINK
|
||||
ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_USER_LINK.id_response_quality_metric
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_metric = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR RESPONSE_QUALITY_METRIC_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_RQM t_USER
|
||||
ON RESPONSE_QUALITY_METRIC_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 RESPONSE_QUALITY_METRIC_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
RESPONSE_QUALITY_METRIC.id_metric
|
||||
, RESPONSE_QUALITY_METRIC.id_unit_measurement
|
||||
@@ -368,6 +551,8 @@ BEGIN
|
||||
, RESPONSE_QUALITY_METRIC.value_min
|
||||
, RESPONSE_QUALITY_METRIC.value_max
|
||||
, RESPONSE_QUALITY_METRIC.active
|
||||
, IFNULL(RESPONSE_QUALITY_METRIC_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, RESPONSE_QUALITY_METRIC_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_response_quality_metric_id = 0
|
||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
||||
@@ -380,6 +565,9 @@ BEGIN
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
||||
LEFT JOIN Response_Quality_Metric_Filters RESPONSE_QUALITY_METRIC_FILTERS ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_FILTERS.id_metric
|
||||
LEFT JOIN Response_Quality_Metric_Access RESPONSE_QUALITY_METRIC_ACCESS
|
||||
ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_ACCESS.id_metric
|
||||
AND RESPONSE_QUALITY_METRIC_ACCESS.index_link_in_metric = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_metric = 1
|
||||
@@ -392,6 +580,7 @@ BEGIN
|
||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(RESPONSE_QUALITY_METRIC_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_metric = 1
|
||||
OR RESPONSE_QUALITY_METRIC.active = 1
|
||||
@@ -411,26 +600,43 @@ BEGIN
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_RQM t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
DELETE t_RESPONSE_QUALITY_METRIC
|
||||
FROM tmp_Response_Quality_Metric_Calc_RQM t_RESPONSE_QUALITY_METRIC
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_RQM t_USER ON t_RESPONSE_QUALITY_METRIC.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
||||
OR (
|
||||
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
||||
OR (
|
||||
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
||||
AND (
|
||||
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
||||
AND (
|
||||
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -441,80 +647,6 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_RQM t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_RQM (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Button Icons.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
@@ -597,6 +729,7 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_RQM;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -614,6 +747,11 @@ CALL fetchmetrics.p_dog_calc_response_quality_metric (
|
||||
, 0 -- a_get_inactive_metric
|
||||
, '' -- a_ids_metric
|
||||
, '' -- a_names_metric
|
||||
, 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
|
||||
|
||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_response_quality_metric (
|
||||
, IN a_get_inactive_response_quality_metric BIT
|
||||
, IN a_ids_response_quality_metric TEXT
|
||||
, IN a_names_response_quality_metric TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
@@ -23,7 +28,6 @@ BEGIN
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
@@ -81,20 +85,9 @@ BEGIN
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
/*
|
||||
SET a_get_all_response_quality_metric := IFNULL(a_get_all_response_quality_metric, 0);
|
||||
SET a_get_inactive_response_quality_metric := IFNULL(a_get_inactive_response_quality_metric, 0);
|
||||
SET a_ids_response_quality_metric := TRIM(IFNULL(a_ids_response_quality_metric, ''));
|
||||
SET a_names_response_quality_metric := TRIM(IFNULL(a_names_response_quality_metric, ''));
|
||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
||||
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||
*/
|
||||
SET a_debug := IFNULL(a_debug, 0);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -104,6 +97,11 @@ BEGIN
|
||||
, a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -115,7 +113,6 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -142,83 +139,6 @@ BEGIN
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view RESPONSE_QUALITY_METRIC.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Call Response_Quality_Metric Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
@@ -230,6 +150,11 @@ BEGIN
|
||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -246,6 +171,11 @@ BEGIN
|
||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||
, a_get_all_user
|
||||
, 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
|
||||
@@ -291,16 +221,6 @@ BEGIN
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Filter outputs
|
||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Response_Quality_Metric;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Response_Quality_Metric;
|
||||
END IF;
|
||||
|
||||
|
||||
-- Outputs
|
||||
-- RESPONSE_QUALITY_METRIC
|
||||
SELECT
|
||||
@@ -365,6 +285,11 @@ CALL fetchmetrics.p_dog_get_many_response_quality_metric (
|
||||
, 0 -- a_get_inactive_response_quality_metric
|
||||
, '' -- a_ids_response_quality_metric
|
||||
, '' -- a_names_response_quality_metric
|
||||
, 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
|
||||
@@ -379,6 +304,11 @@ CALL fetchmetrics.p_dog_get_many_response_quality_metric (
|
||||
, 0 -- a_get_inactive_response_quality_metric
|
||||
, '' -- a_ids_response_quality_metric
|
||||
, 'pat,point' -- a_names_response_quality_metric
|
||||
, 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
|
||||
|
||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_obedience_level (
|
||||
, IN a_get_inactive_obedience_level BIT
|
||||
, IN a_ids_obedience_level TEXT
|
||||
, IN a_names_obedience_level TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
@@ -26,9 +31,14 @@ BEGIN
|
||||
DECLARE v_has_filter_obedience_level_name BIT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_command_view INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(200);
|
||||
DECLARE v_is_super_user BIT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -83,9 +93,17 @@ 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_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' 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_ids_permission_required := (SELECT CONCAT(
|
||||
CONVERT(v_id_permission_dog_view, CHAR)
|
||||
, ','
|
||||
, CONVERT(v_id_permission_command_view, CHAR)
|
||||
));
|
||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||
|
||||
|
||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||
|
||||
@@ -109,6 +127,10 @@ BEGIN
|
||||
, a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level
|
||||
, a_names_obedience_level
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met
|
||||
@@ -120,7 +142,9 @@ BEGIN
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_id_permission_command_view
|
||||
, v_id_permission_dog_view
|
||||
, v_ids_permission_required
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -129,9 +153,30 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Obedience_Level (
|
||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user INT
|
||||
, id_role INT
|
||||
, id_permission_required INT NOT NULL
|
||||
, priority_access_level_required INT NOT NULL
|
||||
, is_super_user BIT
|
||||
, priority_access_level_user INT
|
||||
, has_access BIT
|
||||
, can_view BIT
|
||||
, can_edit BIT
|
||||
, can_admin BIT
|
||||
, active BIT
|
||||
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_Obedience_Level_Calc_Obedience_Level (
|
||||
id_obedience_level INT NOT NULL
|
||||
, exists_valid_link BIT NOT NULL
|
||||
, id_user INT
|
||||
, does_meet_id_filters BIT NOT NULL
|
||||
, does_meet_non_id_filters BIT NOT NULL
|
||||
);
|
||||
@@ -158,6 +203,170 @@ BEGIN
|
||||
SET v_has_filter_obedience_level_id = CASE WHEN a_ids_obedience_level <> '' THEN 1 ELSE 0 END;
|
||||
SET v_has_filter_obedience_level_name = CASE WHEN a_names_obedience_level <> '' THEN 1 ELSE 0 END;
|
||||
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_can_view
|
||||
, v_is_super_user
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Obedience_Level t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Obedience_Level (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Obedience_Levels.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
-- Users
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user_access(
|
||||
a_guid-- guid
|
||||
, a_get_all_user -- get_all_user
|
||||
, a_get_inactive_user -- get_inactive_user
|
||||
, a_ids_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, a_names_user -- a_names_user
|
||||
, a_emails_user -- a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, 0 -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_Calc_User_Access_Calc_Obedience_Level (
|
||||
id_user
|
||||
, id_role
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, active
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, CALC_USER_T.id_role
|
||||
, CALC_USER_T.id_permission_required
|
||||
, CALC_USER_T.priority_access_level_required
|
||||
, CALC_USER_T.is_super_user
|
||||
, CALC_USER_T.priority_access_level_user
|
||||
, CALC_USER_T.has_access
|
||||
, CALC_USER_T.can_view
|
||||
, CALC_USER_T.can_edit
|
||||
, CALC_USER_T.can_admin
|
||||
, CALC_USER_T.active
|
||||
, CALC_USER_T.does_meet_id_filters
|
||||
, CALC_USER_T.does_meet_non_id_filters
|
||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get many user';
|
||||
SELECT * FROM tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Obedience_Levels
|
||||
IF v_has_filter_obedience_level_id = 1 THEN
|
||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_obedience_level, ',', a_debug);
|
||||
@@ -205,12 +414,12 @@ BEGIN
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(OBEDIENCE_LEVELS.id_obedience_level)
|
||||
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
||||
OR (
|
||||
OBEDIENCE_LEVELS.active = 0
|
||||
OBEDIENCE_LEVEL.active = 0
|
||||
AND a_get_inactive_obedience_level = 0
|
||||
)
|
||||
) THEN
|
||||
@@ -224,12 +433,12 @@ BEGIN
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Obedience_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(OBEDIENCE_LEVELS.id_obedience_level)
|
||||
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
||||
OR (
|
||||
OBEDIENCE_LEVELS.active = 0
|
||||
OBEDIENCE_LEVEL.active = 0
|
||||
AND a_get_inactive_obedience_level = 0
|
||||
)
|
||||
;
|
||||
@@ -239,70 +448,122 @@ BEGIN
|
||||
ELSE
|
||||
INSERT INTO tmp_Obedience_Level_Calc_Obedience_Level (
|
||||
id_obedience_level
|
||||
, exists_valid_link
|
||||
, id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
Obedience_Level_Id_Filter AS (
|
||||
SELECT OBEDIENCE_LEVELS.id_obedience_level
|
||||
SELECT OBEDIENCE_LEVEL.id_obedience_level
|
||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||
)
|
||||
, Obedience_Level_Name_Filter AS (
|
||||
SELECT OBEDIENCE_LEVELS.id_obedience_level
|
||||
SELECT OBEDIENCE_LEVEL.id_obedience_level
|
||||
FROM tmp_Split_Name_Calc_Obedience_Level t_SPLIT_NAME
|
||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON OBEDIENCE_LEVELS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON OBEDIENCE_LEVEL.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||
)
|
||||
, Obedience_Level_Filters AS (
|
||||
SELECT
|
||||
OBEDIENCE_LEVELS_COMBINED.id_obedience_level
|
||||
, MAX(OBEDIENCE_LEVELS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(OBEDIENCE_LEVELS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
OBEDIENCE_LEVEL_COMBINED.id_obedience_level
|
||||
, MAX(OBEDIENCE_LEVEL_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(OBEDIENCE_LEVEL_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
OBEDIENCE_LEVELS_ID_FILTER.id_obedience_level
|
||||
OBEDIENCE_LEVEL_ID_FILTER.id_obedience_level
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM Obedience_Level_Id_Filter OBEDIENCE_LEVELS_ID_FILTER
|
||||
FROM Obedience_Level_Id_Filter OBEDIENCE_LEVEL_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
OBEDIENCE_LEVELS_NAME_FILTER.id_obedience_level
|
||||
OBEDIENCE_LEVEL_NAME_FILTER.id_obedience_level
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM Obedience_Level_Name_Filter OBEDIENCE_LEVELS_NAME_FILTER
|
||||
) OBEDIENCE_LEVELS_COMBINED
|
||||
GROUP BY OBEDIENCE_LEVELS_COMBINED.id_obedience_level
|
||||
FROM Obedience_Level_Name_Filter OBEDIENCE_LEVEL_NAME_FILTER
|
||||
) OBEDIENCE_LEVEL_COMBINED
|
||||
GROUP BY OBEDIENCE_LEVEL_COMBINED.id_obedience_level
|
||||
)
|
||||
, Obedience_Level_Access AS (
|
||||
SELECT
|
||||
OBEDIENCE_LEVEL.id_obedience_level
|
||||
, 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 OBEDIENCE_LEVEL.id_obedience_level
|
||||
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_obedience_level
|
||||
, t_USER.id_user
|
||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level_User_Link OBEDIENCE_LEVEL_USER_LINK
|
||||
ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_USER_LINK.id_obedience_level
|
||||
AND (
|
||||
(
|
||||
a_get_inactive_obedience_level = 1
|
||||
AND a_get_inactive_user = 1
|
||||
)
|
||||
OR OBEDIENCE_LEVEL_USER_LINK.active = 1
|
||||
)
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Obedience_Level t_USER
|
||||
ON OBEDIENCE_LEVEL_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 OBEDIENCE_LEVEL_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
)
|
||||
SELECT
|
||||
OBEDIENCE_LEVELS.id_obedience_level
|
||||
OBEDIENCE_LEVEL.id_obedience_level
|
||||
, IFNULL(OBEDIENCE_LEVEL_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||
, OBEDIENCE_LEVEL_ACCESS.id_user
|
||||
, CASE WHEN
|
||||
v_has_filter_obedience_level_id = 0
|
||||
OR IFNULL(OBEDIENCE_LEVELS_FILTERS.does_meet_id_filter, 0) = 1
|
||||
OR IFNULL(OBEDIENCE_LEVEL_FILTERS.does_meet_id_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_obedience_level_name = 0
|
||||
)
|
||||
OR IFNULL(OBEDIENCE_LEVELS_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(OBEDIENCE_LEVEL_FILTERS.does_meet_name_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS
|
||||
LEFT JOIN Obedience_Level_Filters OBEDIENCE_LEVELS_FILTERS ON OBEDIENCE_LEVELS.id_obedience_level = OBEDIENCE_LEVELS_FILTERS.id_obedience_level
|
||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||
LEFT JOIN Obedience_Level_Filters OBEDIENCE_LEVEL_FILTERS ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_FILTERS.id_obedience_level
|
||||
LEFT JOIN Obedience_Level_Access OBEDIENCE_LEVEL_ACCESS
|
||||
ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_ACCESS.id_obedience_level
|
||||
AND OBEDIENCE_LEVEL_ACCESS.index_link_in_obedience_level = 1
|
||||
WHERE
|
||||
(
|
||||
a_get_all_obedience_level = 1
|
||||
OR (
|
||||
v_has_filter_obedience_level_id = 1
|
||||
AND OBEDIENCE_LEVELS_FILTERS.does_meet_id_filter = 1
|
||||
AND OBEDIENCE_LEVEL_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_obedience_level_name = 1
|
||||
AND OBEDIENCE_LEVELS_FILTERS.does_meet_name_filter = 1
|
||||
AND OBEDIENCE_LEVEL_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
)
|
||||
AND IFNULL(OBEDIENCE_LEVEL_ACCESS.exists_valid_link, 0) = 1
|
||||
AND (
|
||||
a_get_inactive_obedience_level = 1
|
||||
OR OBEDIENCE_LEVELS.active = 1
|
||||
OR OBEDIENCE_LEVEL.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -318,28 +579,45 @@ BEGIN
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Obedience_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
DELETE t_OBEDIENCE_LEVELS
|
||||
FROM tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVELS
|
||||
DELETE t_OBEDIENCE_LEVEL
|
||||
FROM tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVEL
|
||||
LEFT JOIN tmp_Calc_User_Access_Calc_Obedience_Level t_USER ON t_OBEDIENCE_LEVEL.id_user = t_USER.id_user
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND (
|
||||
t_OBEDIENCE_LEVELS.does_meet_id_filters = 0
|
||||
t_OBEDIENCE_LEVEL.does_meet_id_filters = 0
|
||||
OR (
|
||||
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND (
|
||||
t_OBEDIENCE_LEVELS.does_meet_non_id_filters = 0
|
||||
t_OBEDIENCE_LEVEL.does_meet_non_id_filters = 0
|
||||
OR (
|
||||
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_OBEDIENCE_LEVELS.does_meet_id_filters = 0
|
||||
AND t_OBEDIENCE_LEVEL.does_meet_id_filters = 0
|
||||
AND (
|
||||
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_OBEDIENCE_LEVELS.does_meet_non_id_filters = 0
|
||||
AND t_OBEDIENCE_LEVEL.does_meet_non_id_filters = 0
|
||||
AND (
|
||||
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||
)
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
@@ -351,81 +629,6 @@ BEGIN
|
||||
|
||||
-- Calculated fields
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
a_guid -- a_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error_Calc_Obedience_Level t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error_Calc_Obedience_Level (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Dogs and Obedience_Levels.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
a_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Before non-permitted data deletion';
|
||||
SELECT * FROM tmp_Obedience_Level_Calc_Obedience_Level;
|
||||
@@ -459,16 +662,16 @@ BEGIN
|
||||
)
|
||||
SELECT
|
||||
a_guid
|
||||
, t_OBEDIENCE_LEVELS.id_obedience_level
|
||||
, OBEDIENCE_LEVELS.code
|
||||
, OBEDIENCE_LEVELS.name
|
||||
, OBEDIENCE_LEVELS.active
|
||||
, t_OBEDIENCE_LEVEL.id_obedience_level
|
||||
, OBEDIENCE_LEVEL.code
|
||||
, OBEDIENCE_LEVEL.name
|
||||
, OBEDIENCE_LEVEL.active
|
||||
|
||||
, t_OBEDIENCE_LEVELS.does_meet_id_filters
|
||||
, t_OBEDIENCE_LEVELS.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS
|
||||
INNER JOIN tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVELS ON OBEDIENCE_LEVELS.id_obedience_level = t_OBEDIENCE_LEVELS.id_obedience_level
|
||||
ORDER BY OBEDIENCE_LEVELS.name
|
||||
, t_OBEDIENCE_LEVEL.does_meet_id_filters
|
||||
, t_OBEDIENCE_LEVEL.does_meet_non_id_filters
|
||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||
INNER JOIN tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVEL ON OBEDIENCE_LEVEL.id_obedience_level = t_OBEDIENCE_LEVEL.id_obedience_level
|
||||
ORDER BY OBEDIENCE_LEVEL.name
|
||||
;
|
||||
COMMIT;
|
||||
|
||||
@@ -499,6 +702,7 @@ BEGIN
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||
@@ -517,6 +721,11 @@ CALL fetchmetrics.p_dog_calc_obedience_level (
|
||||
, 0 -- a_get_inactive_obedience_level
|
||||
, '' -- a_ids_obedience_level
|
||||
, '' -- a_names_obedience_level
|
||||
, 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
|
||||
|
||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_obedience_level (
|
||||
, IN a_get_inactive_obedience_level BIT
|
||||
, IN a_ids_obedience_level TEXT
|
||||
, IN a_names_obedience_level 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
|
||||
@@ -22,8 +27,6 @@ BEGIN
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||
DECLARE v_guid BINARY(36);
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_minimum INT;
|
||||
DECLARE v_id_permission_dog_view INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_id_type_error_no_permission INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
@@ -81,7 +84,6 @@ BEGIN
|
||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||
|
||||
SET a_id_user := IFNULL(a_id_user, 0);
|
||||
@@ -115,7 +117,6 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_id_type_error_no_permission
|
||||
, v_guid
|
||||
, v_id_permission_dog_view
|
||||
, v_time_start
|
||||
;
|
||||
END IF;
|
||||
@@ -140,83 +141,6 @@ BEGIN
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
SELECT
|
||||
IFNULL(CALC_USER_T.has_access, 0)
|
||||
INTO
|
||||
v_can_view
|
||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = v_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_can_view;
|
||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||
END IF;
|
||||
|
||||
IF (v_can_view = 0) THEN
|
||||
DELETE t_ME
|
||||
FROM tmp_Msg_Error t_ME
|
||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||
;
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_no_permission
|
||||
, v_code_type_error_no_permission
|
||||
, 'You do not have permission to view Obedience_Levels.'
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||
v_guid
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
|
||||
-- Call Obedience_Level Calc
|
||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||
@@ -228,6 +152,11 @@ BEGIN
|
||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level -- a_ids_obedience_level
|
||||
, a_names_obedience_level -- a_names_obedience_level
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||
@@ -244,6 +173,11 @@ BEGIN
|
||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||
, a_ids_obedience_level -- a_ids_obedience_level
|
||||
, a_names_obedience_level -- a_names_obedience_level
|
||||
, a_get_all_user
|
||||
, 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
|
||||
@@ -351,6 +285,11 @@ CALL fetchmetrics.p_dog_get_many_obedience_level (
|
||||
, 0 -- a_get_inactive_obedience_level
|
||||
, '' -- a_ids_obedience_level
|
||||
, '' -- a_names_obedience_level
|
||||
, 1 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '' -- a_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
@@ -365,6 +304,11 @@ CALL fetchmetrics.p_dog_get_many_obedience_level (
|
||||
, 0 -- a_get_inactive_obedience_level
|
||||
, '' -- a_ids_obedience_level
|
||||
, 'pat,point' -- a_names_obedience_level
|
||||
, 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
|
||||
|
||||
@@ -1197,6 +1197,25 @@ VALUES
|
||||
)
|
||||
;
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Button_Shape_User_Link (
|
||||
id_button_shape
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
BS.id_button_shape
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Button_Shape BS
|
||||
UNION
|
||||
SELECT
|
||||
BS.id_button_shape
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Button_Shape BS
|
||||
;
|
||||
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Colour (
|
||||
code
|
||||
, name
|
||||
@@ -1227,6 +1246,44 @@ VALUES
|
||||
, NULL
|
||||
)
|
||||
;
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Image (
|
||||
id_file_type
|
||||
, id_dog
|
||||
, name
|
||||
, path
|
||||
, display_order
|
||||
, active
|
||||
, id_user_created_by
|
||||
)
|
||||
VALUES (
|
||||
2
|
||||
, 1
|
||||
, 'Wisp'
|
||||
, 'https://fetch-metrics.co.uk/static/images/Wisp.jpg'
|
||||
, 1
|
||||
, 1
|
||||
, 1
|
||||
)
|
||||
;
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Image_User_Link (
|
||||
id_image
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
I.id_image
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Image I
|
||||
UNION
|
||||
SELECT
|
||||
I.id_image
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Image I
|
||||
;
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -1376,6 +1433,25 @@ VALUES
|
||||
, 'Squeaky Toy'
|
||||
)
|
||||
;
|
||||
/*
|
||||
INSERT INTO fetchmetrics.DOG_Distraction_Type_User_Link (
|
||||
id_distraction_type
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
DT.id_type
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Distraction_Type DT
|
||||
UNION
|
||||
SELECT
|
||||
DT.id_type
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Distraction_Type DT
|
||||
;
|
||||
*/
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level (
|
||||
code
|
||||
@@ -1405,6 +1481,24 @@ VALUES
|
||||
;
|
||||
|
||||
/*
|
||||
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level_User_Link (
|
||||
id_intensity_level
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
IL.id_intensity_level
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level IL
|
||||
UNION
|
||||
SELECT
|
||||
IL.id_intensity_level
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level IL
|
||||
;
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Distraction (
|
||||
id_assessment
|
||||
, id_distraction_type
|
||||
@@ -1513,6 +1607,25 @@ VALUES
|
||||
, 1
|
||||
)
|
||||
;
|
||||
/*
|
||||
INSERT INTO fetchmetrics.DOG_Response_Quality_Metric_User_Link (
|
||||
id_response_quality_metric
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
RQM.id_metric
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Response_Quality_Metric RQM
|
||||
UNION
|
||||
SELECT
|
||||
RQM.id_metric
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Response_Quality_Metric RQM
|
||||
;
|
||||
*/
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Obedience_Level (
|
||||
code
|
||||
@@ -1576,6 +1689,26 @@ VALUES
|
||||
, 'Refused and Ran Away Refusing to Return'
|
||||
)
|
||||
;
|
||||
/*
|
||||
|
||||
INSERT INTO fetchmetrics.DOG_Obedience_Level_User_Link (
|
||||
id_obedience_level
|
||||
, id_user
|
||||
, id_access_level
|
||||
)
|
||||
SELECT
|
||||
OL.id_obedience_level
|
||||
, 1
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Obedience_Level OL
|
||||
UNION
|
||||
SELECT
|
||||
OL.id_obedience_level
|
||||
, 2
|
||||
, 3
|
||||
FROM fetchmetrics.DOG_Obedience_Level OL
|
||||
;
|
||||
*/
|
||||
|
||||
/*
|
||||
Post Excel-insert:
|
||||
|
||||
Reference in New Issue
Block a user