Feat(SQL, UI): 1. Dog Command Links page completed with get + set functionality. \n 2. Commands page and Command Categories page completed with get + set functionality.
This commit is contained in:
@@ -167,308 +167,6 @@ BEGIN
|
||||
, code VARCHAR(100) NOT NULL
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
/*
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Auth0_Id;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_auth0_id_user) THEN
|
||||
SET a_id_user := (SELECT U.id_user FROM parts.DOG_User U WHERE U.id_user_auth0 = a_auth0_id_user LIMIT 1);
|
||||
END IF;
|
||||
|
||||
IF
|
||||
ISNULL(a_id_user)
|
||||
AND ISNULL(a_auth0_id_user)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
VALUES (
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('User ID required for authorisation.')
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
SET v_has_filter_user_id := CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_user_auth0_id := CASE WHEN a_auth0_ids_user = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_user_name := CASE WHEN a_names_user = '' THEN 0 ELSE 1 END;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_has_filter_user_id
|
||||
, v_has_filter_user_auth0_id
|
||||
, v_has_filter_user_name
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- User IDs
|
||||
IF v_has_filter_user_id = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_ids_user, ',', FALSE);
|
||||
|
||||
SET sql_mode = '';
|
||||
|
||||
INSERT INTO tmp_Split_Id (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
, CAST(substring AS DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp
|
||||
WHERE
|
||||
GUID = v_guid
|
||||
AND IFNULL(substring, '') != ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR USER.active = 0
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
LEFT JOIN parts.DOG_User U ON t_SPLIT_ID.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_ID.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR USER.active = 0
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- Auth0 User IDs
|
||||
IF v_has_filter_user_auth0_id = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_auth0_ids_user, ',', FALSE);
|
||||
|
||||
INSERT INTO tmp_Split_Auth0_Id (
|
||||
substring
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
FROM parts.CORE_Split_Temp
|
||||
WHERE
|
||||
GUID = v_guid
|
||||
AND IFNULL(substring, '') != ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
|
||||
IF EXISTS (
|
||||
SELECT *
|
||||
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_AUTH0.substring)
|
||||
OR ISNULL(USER.id_user_auth0)
|
||||
OR USER.active = 0
|
||||
) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive Auth0 User IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_AUTH0.substring SEPARATOR ', '), 'NULL'))
|
||||
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(t_SPLIT_AUTH0.substring)
|
||||
OR ISNULL(USER.id_user_auth0)
|
||||
OR USER.active = 0
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- User Names
|
||||
IF v_has_filter_user_name = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_names_user, ',', FALSE);
|
||||
|
||||
SET sql_mode = '';
|
||||
|
||||
INSERT INTO tmp_Split_Name (
|
||||
substring
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
FROM parts.CORE_Split_Temp
|
||||
WHERE
|
||||
GUID = v_guid
|
||||
AND IFNULL(substring, '') != ''
|
||||
;
|
||||
|
||||
CALL parts.p_core_clear_split( v_guid );
|
||||
END IF;
|
||||
|
||||
IF
|
||||
v_has_filter_user_id = 1
|
||||
OR v_has_filter_user_auth0_id = 1
|
||||
THEN
|
||||
INSERT INTO tmp_User (
|
||||
id_user
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
User_Id_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Id t_SPLIT_ID
|
||||
INNER JOIN parts.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user
|
||||
)
|
||||
, User_Auth0_Id_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Auth0_Id t_SPLIT_AUTH0
|
||||
INNER JOIN parts.DOG_User USER ON t_SPLIT_AUTH0.substring = USER.id_user_auth0
|
||||
)
|
||||
, User_Name_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Name t_SPLIT_NAME
|
||||
INNER JOIN parts.DOG_User USER ON CONCAT(USER.firstname, ' ', USER.surname) LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
||||
)
|
||||
, User_Filters AS (
|
||||
SELECT
|
||||
USER_COMBINED.id_user
|
||||
, MAX(USER_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||
, MAX(USER_COMBINED.does_meet_auth0_id_filter) AS does_meet_auth0_id_filter
|
||||
, MAX(USER_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||
FROM (
|
||||
SELECT
|
||||
ID_FILTER.id_user
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_auth0_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM User_Id_Filter ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
AUTH0_ID_FILTER.id_user
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_auth0_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
FROM User_Auth0_Id_Filter AUTH0_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
NAME_FILTER.id_user
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_auth0_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
FROM User_Name_Filter NAME_FILTER
|
||||
) USER_COMBINED
|
||||
GROUP BY USER_COMBINED.id_user
|
||||
)
|
||||
SELECT
|
||||
USER.id_user
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_user_id = 0
|
||||
AND v_has_filter_user_auth0_id = 0
|
||||
)
|
||||
OR IFNULL(USER_FILTERS.does_meet_id_filter, 0) = 1
|
||||
OR IFNULL(USER_FILTERS.does_meet_auth0_id_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||
, CASE WHEN
|
||||
(
|
||||
v_has_filter_user_name = 0
|
||||
)
|
||||
OR IFNULL(USER_FILTERS.does_meet_name_filter, 0) = 1
|
||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||
FROM parts.DOG_User USER
|
||||
LEFT JOIN User_Filters USER_FILTERS ON USER.id_user = USER_FILTERS.id_user
|
||||
WHERE
|
||||
(
|
||||
a_get_all_user = 1
|
||||
OR (
|
||||
v_has_filter_user_id = 1
|
||||
AND USER_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_user_auth0_id = 1
|
||||
AND USER_FILTERS.does_meet_auth0_id_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_user_id = 1
|
||||
AND USER_FILTERS.does_meet_id_filter = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_user = 1
|
||||
OR USER.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id;
|
||||
DELETE FROM tmp_Split_Auth0_Id;
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After get all Users';
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.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_USER
|
||||
FROM tmp_User t_USER
|
||||
WHERE
|
||||
(
|
||||
a_require_all_id_search_filters_met = 1
|
||||
AND t_USER.does_meet_id_filters = 0
|
||||
)
|
||||
OR (
|
||||
a_require_all_non_id_search_filters_met = 1
|
||||
AND t_USER.does_meet_non_id_filters = 0
|
||||
)
|
||||
OR (
|
||||
a_require_any_id_search_filters_met = 1
|
||||
AND t_USER.does_meet_id_filters = 0
|
||||
)
|
||||
OR (
|
||||
a_require_any_non_id_search_filters_met = 1
|
||||
AND t_USER.does_meet_non_id_filters = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After filter Users';
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
-- Calculated fields
|
||||
-- Can admin dog
|
||||
@@ -754,7 +452,6 @@ delete FROM parts.DOG_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_USER;
|
||||
*/
|
||||
|
||||
CALL p_dog_get_many_user(
|
||||
NULL -- :a_id_user,
|
||||
@@ -772,4 +469,4 @@ CALL p_dog_get_many_user(
|
||||
, 1 -- :a_require_any_non_id_search_filters_met,
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user