Feat: Dogs page.

This commit is contained in:
2025-08-09 10:44:33 +01:00
parent d5e5e1a111
commit 77393d2057
46 changed files with 1718 additions and 640 deletions

View File

@@ -31,7 +31,9 @@ BEGIN
DECLARE v_has_filter_user_id BIT;
DECLARE v_has_filter_user_name BIT;
DECLARE v_id_access_level_admin INT;
DECLARE v_id_access_level_edit INT;
DECLARE v_id_access_level_view INT;
DECLARE v_id_permission_company_edit INT;
DECLARE v_id_permission_dog_admin INT;
DECLARE v_id_permission_user INT;
DECLARE v_id_permission_user_admin INT;
@@ -95,9 +97,11 @@ BEGIN
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_guid := UUID();
SET v_id_access_level_admin := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE code = 'ADMIN' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE code = 'EDIT' LIMIT 1);
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE code = 'VIEW' LIMIT 1);
SET v_priority_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE code = 'EDIT' LIMIT 1);
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE code = 'NONE' LIMIT 1);
SET v_id_permission_company_edit := (SELECT id_permission FROM fetchmetrics.DOG_Permission WHERE code = 'COMPANY_EDIT' LIMIT 1);
SET v_id_permission_dog_admin := (SELECT id_permission FROM fetchmetrics.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1);
SET v_id_permission_user := (SELECT id_permission FROM fetchmetrics.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1);
SET v_id_permission_user_admin := (SELECT id_permission FROM fetchmetrics.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1);
@@ -164,6 +168,7 @@ BEGIN
, can_admin BIT
, can_admin_dog BIT
, can_admin_user BIT
, can_edit_company BIT
);
CREATE TEMPORARY TABLE tmp_User_Access (
@@ -538,6 +543,63 @@ BEGIN
CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE );
END IF;
-- Can edit company
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
IF a_debug = 1 THEN
SELECT
v_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_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
, 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
, v_id_permission_company_edit -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
;
SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp;
END IF;
CALL fetchmetrics.p_dog_calc_user_access(
v_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_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
, 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
, v_id_permission_company_edit -- ids_permission
, v_id_access_level_edit -- ids_access_level
, 0 -- a_show_errors
, 0 -- a_debug
);
UPDATE tmp_User t_USER
INNER JOIN fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
ON CALC_USER_T.id_user = t_USER.id_user
AND CALC_USER_T.guid = v_guid
LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company
SET t_USER.can_edit_company = IFNULL(CALC_USER_T.has_access, 0)
WHERE t_COMPANY.id_company IS NOT NULL
;
IF a_debug = 1 THEN
SELECT * FROM tmp_User;
END IF;
CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE );
END IF;
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
@@ -564,6 +626,7 @@ BEGIN
, t_USER.priority_access_level_user AS priority_access_level
, t_USER.can_admin_dog
, t_USER.can_admin_user
, t_USER.can_edit_company
FROM tmp_User t_USER
-- INNER JOIN tmp_User_Access t_USER_ACCESS
INNER JOIN fetchmetrics.DOG_User USERS ON t_USER.id_user = USERS.id_user
@@ -622,9 +685,9 @@ CALL fetchmetrics.p_dog_get_many_user(
, 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_ids_user
, '' -- a_names_user
, '' -- a_emails_user
, '' -- a_ids_company
, 0 -- a_get_all_company
, 1 -- a_get_all_company
, 0 -- a_get_inactive_company
, '' -- a_ids_company
, 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,