Feat(SQL, UI): 1. Updated User Calc Stored Procedure with Search functionality from previous commit on Command and Dog tables. \n 2. Corrected functionality of active field trash and add icons instead of button with replaceable text. \n 3. Improved styling on Dog Command Link page.
This commit is contained in:
@@ -144,11 +144,14 @@ class User_Temp(db.Model, Base):
|
||||
|
||||
|
||||
class Parameters_User(Get_Many_Parameters_Base):
|
||||
id_user: int
|
||||
auth0_id_user: str
|
||||
get_all_user: bool
|
||||
get_inactive_user: bool
|
||||
ids_user: str
|
||||
ids_user_auth0: str
|
||||
names_user: str
|
||||
emails_user: str
|
||||
require_all_id_search_filters_met: bool
|
||||
require_any_id_search_filters_met: bool
|
||||
require_all_non_id_search_filters_met: bool
|
||||
@@ -179,16 +182,21 @@ class Parameters_User(Get_Many_Parameters_Base):
|
||||
filters.get_inactive_user = False
|
||||
filters.ids_user = '' if user.id_user is None else str(user.id_user)
|
||||
filters.ids_user_auth0 = user.id_user_auth0
|
||||
filters.names_user = user.firstname + ' ' + user.surname
|
||||
filters.emails_user = user.email
|
||||
return filters
|
||||
|
||||
@classmethod
|
||||
def get_default(cls):
|
||||
return cls(
|
||||
get_all_user = False
|
||||
id_user = None
|
||||
, auth0_id_user = ''
|
||||
, get_all_user = False
|
||||
, get_inactive_user = False
|
||||
, ids_user = ''
|
||||
, ids_user_auth0 = ''
|
||||
, names_user = ''
|
||||
, emails_user = ''
|
||||
, require_all_id_search_filters_met = True
|
||||
, require_any_id_search_filters_met = True
|
||||
, require_all_non_id_search_filters_met = False
|
||||
@@ -200,11 +208,14 @@ class Parameters_User(Get_Many_Parameters_Base):
|
||||
pass
|
||||
def to_json(self):
|
||||
return {
|
||||
'a_get_all_user': self.get_all_user
|
||||
'a_id_user': self.id_user
|
||||
, 'a_auth0_id_user': self.auth0_id_user
|
||||
, 'a_get_all_user': self.get_all_user
|
||||
, 'a_get_inactive_user': self.get_inactive_user
|
||||
, 'a_ids_user': self.ids_user
|
||||
, 'a_ids_user_auth0': self.ids_user_auth0
|
||||
, 'a_names_user': self.names_user
|
||||
, 'a_emails_user': self.emails_user
|
||||
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||
|
||||
@@ -80,10 +80,10 @@ class DataStore_User(DataStore_Base):
|
||||
if user is None:
|
||||
user = self.get_user_session()
|
||||
Helper_App.console_log(f'user: {user}')
|
||||
user_filters.id_user = user.id_user
|
||||
user_filters.auth0_id_user = user.id_user_auth0
|
||||
argument_dict_list = {
|
||||
'a_id_user': user.id_user
|
||||
, 'a_id_user_auth0': user.id_user_auth0
|
||||
, **user_filters.to_json()
|
||||
**user_filters.to_json()
|
||||
, 'a_debug': 0
|
||||
|
||||
}
|
||||
|
||||
@@ -180,6 +180,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
ID_BUTTON_CANCEL: ClassVar[str] = 'buttonCancel'
|
||||
ID_BUTTON_HAMBURGER: ClassVar[str] = 'buttonHamburger'
|
||||
ID_BUTTON_SAVE: ClassVar[str] = 'buttonSave'
|
||||
ID_CONTAINER_TEMPLATE_ELEMENTS: ClassVar[str] = 'container-template-elements'
|
||||
ID_CSRF_TOKEN: ClassVar[str] = 'X-CSRFToken'
|
||||
ID_FORM_CONTACT: ClassVar[str] = 'formContact'
|
||||
ID_FORM_FILTERS: ClassVar[str] = 'formFilters'
|
||||
|
||||
@@ -8,12 +8,13 @@ DROP PROCEDURE IF EXISTS p_dog_get_many_user;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE p_dog_get_many_user (
|
||||
IN a_id_user INT
|
||||
, IN a_id_user_auth0 VARCHAR(200)
|
||||
, IN a_auth0_id_user VARCHAR(200)
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_ids_user_auth0 TEXT
|
||||
, IN a_auth0_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
|
||||
@@ -34,6 +35,7 @@ BEGIN
|
||||
DECLARE v_id_permission_user_admin INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||
DECLARE v_ids_user TEXT;
|
||||
DECLARE v_is_new BIT;
|
||||
DECLARE v_rank_max INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
@@ -100,8 +102,9 @@ BEGIN
|
||||
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
||||
SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, ''));
|
||||
SET a_names_user := TRIM(IFNULL(a_names_user, ''));
|
||||
SET a_emails_user := TRIM(IFNULL(a_emails_user, ''));
|
||||
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);
|
||||
@@ -111,12 +114,13 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_id_user_auth0
|
||||
, a_auth0_id_user
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_ids_user_auth0
|
||||
, a_auth0_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
|
||||
@@ -125,18 +129,36 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User_Access;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_User (
|
||||
id_user INT NULL
|
||||
, can_admin_dog BIT NULL
|
||||
, can_admin_user BIT NULL
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user 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
|
||||
, can_admin_dog BIT
|
||||
, can_admin_user BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_User_Access (
|
||||
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user 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_Msg_Error (
|
||||
@@ -145,7 +167,7 @@ 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
|
||||
@@ -163,14 +185,13 @@ BEGIN
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||
SET a_id_user := (SELECT U.id_user FROM demo.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_auth0_id_user) THEN
|
||||
SET a_id_user := (SELECT U.id_user FROM demo.DOG_User U WHERE U.id_user_auth0 = a_auth0_id_user LIMIT 1);
|
||||
END IF;
|
||||
|
||||
IF
|
||||
ISNULL(a_id_user)
|
||||
AND ISNULL(a_id_user_auth0)
|
||||
AND ISNULL(a_auth0_id_user)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
@@ -186,7 +207,7 @@ BEGIN
|
||||
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_ids_user_auth0 = '' 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
|
||||
@@ -248,7 +269,7 @@ BEGIN
|
||||
|
||||
-- Auth0 User IDs
|
||||
IF v_has_filter_user_auth0_id = 1 THEN
|
||||
CALL demo.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||
CALL demo.p_core_split(v_guid, a_auth0_ids_user, ',', FALSE);
|
||||
|
||||
INSERT INTO tmp_Split_Auth0_Id (
|
||||
substring
|
||||
@@ -446,14 +467,25 @@ BEGIN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
-- Calculated fields
|
||||
-- Can admin dog
|
||||
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 -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
@@ -463,26 +495,54 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN demo.DOG_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_dog = CUT.can_admin
|
||||
INSERT INTO tmp_User (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, can_admin_dog
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, 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.can_admin AS can_admin_dog
|
||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
@@ -490,11 +550,19 @@ BEGIN
|
||||
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 -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_id_permission_user_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
@@ -502,26 +570,34 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_user_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN demo.DOG_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_user = CUT.can_admin
|
||||
UPDATE tmp_User t_USER
|
||||
INNER JOIN demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
ON CALC_USER_T.id_user = t_USER.id_user
|
||||
AND CALC_USER_T.guid = v_guid
|
||||
SET t_USER.can_admin_user = CALC_USER_T.can_admin
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
@@ -529,10 +605,18 @@ BEGIN
|
||||
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 -- guid
|
||||
v_guid -- guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, a_auth0_id_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_user -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -541,26 +625,53 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
v_guid -- guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, a_auth0_id_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_user -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_User_Access (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, 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
|
||||
FROM demo.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM demo.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
SELECT * FROM tmp_User_Access;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT can_view
|
||||
FROM demo.DOG_Calc_User_Temp CUT
|
||||
WHERE
|
||||
CUT.GUID = v_guid
|
||||
AND can_view = 1
|
||||
) THEN
|
||||
IF NOT EXISTS (SELECT * FROM tmp_User t_USER WHERE t_USER.can_view = 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
@@ -569,11 +680,12 @@ BEGIN
|
||||
VALUES (
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('You do not have view permissions for ', (SELECT name FROM demo.DOG_Permission P INNER JOIN demo.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1))
|
||||
, CONCAT(
|
||||
'You do not have view permissions for '
|
||||
, (SELECT PERMISSION.name FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.id_permission = v_id_permission_user LIMIT 1)
|
||||
)
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
SET a_debug := a_debug;
|
||||
END IF;
|
||||
|
||||
CALL demo.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
@@ -582,34 +694,25 @@ BEGIN
|
||||
|
||||
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_User;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog_Calc_Dog;
|
||||
DELETE FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
-- Returns
|
||||
/* NULL record required for flask sql_alchemy to detect result set */
|
||||
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
||||
DELETE FROM tmp_User;
|
||||
INSERT INTO tmp_User ( id_user )
|
||||
VALUES ( NULL );
|
||||
END IF;
|
||||
|
||||
|
||||
SELECT
|
||||
U.id_user
|
||||
, U.id_user_auth0
|
||||
, U.firstname
|
||||
, U.surname
|
||||
, U.email
|
||||
, U.is_email_verified
|
||||
, U.is_super_user
|
||||
, t_U.can_admin_dog
|
||||
, t_U.can_admin_user
|
||||
, v_is_new AS is_new
|
||||
FROM tmp_User t_U
|
||||
INNER JOIN demo.DOG_User U ON t_U.id_user = U.id_user
|
||||
USER.id_user
|
||||
, USER.id_user_auth0
|
||||
, USER.firstname
|
||||
, USER.surname
|
||||
, USER.email
|
||||
, USER.is_email_verified
|
||||
, USER.is_super_user
|
||||
, t_USER.can_admin_dog
|
||||
, t_USER.can_admin_user
|
||||
FROM tmp_User t_USER
|
||||
INNER JOIN demo.DOG_User USER ON t_USER.id_user = USER.id_user
|
||||
;
|
||||
|
||||
# Errors
|
||||
@@ -628,14 +731,14 @@ BEGIN
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'End';
|
||||
SELECT * FROM tmp_User;
|
||||
SELECT * FROM tmp_User_Access;
|
||||
END IF;
|
||||
|
||||
-- Clean up
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User_Access;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -645,43 +748,24 @@ END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
CALL p_dog_get_many_user (
|
||||
NULL
|
||||
, 'google-oauth2|109567376920138999933'
|
||||
, False
|
||||
, False
|
||||
-- , False
|
||||
, NULL
|
||||
, 'google-oauth2|109567376920138999933'
|
||||
, 0
|
||||
);
|
||||
NULL # a_id_user
|
||||
, 'auth0|6582b95c895d09a70ba10fef' # a_id_user_auth0
|
||||
, 0 # a_get_all_user
|
||||
, 0 # a_get_inactive_user
|
||||
-- , 0 # a_get_first_user_only
|
||||
, NULL # a_ids_user
|
||||
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
||||
, 0 -- a_debug
|
||||
);*/
|
||||
/*
|
||||
select * FROM demo.DOG_Calc_User_Temp;
|
||||
delete FROM demo.DOG_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM demo.DOG_USER;
|
||||
*/
|
||||
|
||||
CALL p_dog_get_many_user(
|
||||
NULL -- :a_id_user,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_id_user_auth0,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_id_user,
|
||||
, 1 -- :a_get_all_user,
|
||||
, 0 -- :a_get_inactive_user,
|
||||
-- , 0 -- :a_get_first_user_only,
|
||||
, NULL -- :a_ids_user,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :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,
|
||||
@@ -689,4 +773,3 @@ CALL p_dog_get_many_user(
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
|
||||
@@ -8,12 +8,13 @@ DROP PROCEDURE IF EXISTS p_dog_get_many_user;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE p_dog_get_many_user (
|
||||
IN a_id_user INT
|
||||
, IN a_id_user_auth0 VARCHAR(200)
|
||||
, IN a_auth0_id_user VARCHAR(200)
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_ids_user_auth0 TEXT
|
||||
, IN a_auth0_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
|
||||
@@ -34,6 +35,7 @@ BEGIN
|
||||
DECLARE v_id_permission_user_admin INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_ids_permission_required VARCHAR(4000);
|
||||
DECLARE v_ids_user TEXT;
|
||||
DECLARE v_is_new BIT;
|
||||
DECLARE v_rank_max INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
@@ -100,8 +102,9 @@ BEGIN
|
||||
SET a_get_all_user := IFNULL(a_get_all_user, 1);
|
||||
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||
SET a_ids_user_auth0 := TRIM(IFNULL(a_ids_user_auth0, ''));
|
||||
SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, ''));
|
||||
SET a_names_user := TRIM(IFNULL(a_names_user, ''));
|
||||
SET a_emails_user := TRIM(IFNULL(a_emails_user, ''));
|
||||
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);
|
||||
@@ -111,12 +114,13 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_id_user
|
||||
, a_id_user_auth0
|
||||
, a_auth0_id_user
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_user
|
||||
, a_ids_user_auth0
|
||||
, a_auth0_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
|
||||
@@ -125,18 +129,36 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User_Access;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_User (
|
||||
id_user INT NULL
|
||||
, can_admin_dog BIT NULL
|
||||
, can_admin_user BIT NULL
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user 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
|
||||
, can_admin_dog BIT
|
||||
, can_admin_user BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE tmp_User_Access (
|
||||
id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||
, id_user 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_Msg_Error (
|
||||
@@ -145,7 +167,7 @@ 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
|
||||
@@ -163,14 +185,13 @@ BEGIN
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name;
|
||||
|
||||
IF ISNULL(a_id_user) AND NOT ISNULL(a_id_user_auth0) THEN
|
||||
SET a_id_user := (SELECT U.id_user FROM parts.DOG_User U WHERE U.id_user_auth0 = a_id_user_auth0 LIMIT 1);
|
||||
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_id_user_auth0)
|
||||
AND ISNULL(a_auth0_id_user)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
@@ -186,7 +207,7 @@ BEGIN
|
||||
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_ids_user_auth0 = '' 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
|
||||
@@ -248,7 +269,7 @@ BEGIN
|
||||
|
||||
-- Auth0 User IDs
|
||||
IF v_has_filter_user_auth0_id = 1 THEN
|
||||
CALL parts.p_core_split(v_guid, a_ids_user_auth0, ',', FALSE);
|
||||
CALL parts.p_core_split(v_guid, a_auth0_ids_user, ',', FALSE);
|
||||
|
||||
INSERT INTO tmp_Split_Auth0_Id (
|
||||
substring
|
||||
@@ -446,14 +467,25 @@ BEGIN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
*/
|
||||
|
||||
|
||||
-- Calculated fields
|
||||
-- Can admin dog
|
||||
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
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
@@ -463,26 +495,54 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_dog = CUT.can_admin
|
||||
INSERT INTO tmp_User (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
, can_admin_dog
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, 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.can_admin AS can_admin_dog
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
@@ -490,11 +550,19 @@ BEGIN
|
||||
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
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_id_permission_user_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
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_dog_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
;
|
||||
@@ -502,26 +570,34 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
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_user_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
END IF;
|
||||
|
||||
UPDATE tmp_User t_U
|
||||
INNER JOIN parts.DOG_Calc_User_Temp CUT
|
||||
ON CUT.GUID = v_guid
|
||||
AND t_U.id_user = CUT.id_user
|
||||
SET t_U.can_admin_user = CUT.can_admin
|
||||
UPDATE tmp_User t_USER
|
||||
INNER JOIN parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
ON CALC_USER_T.id_user = t_USER.id_user
|
||||
AND CALC_USER_T.guid = v_guid
|
||||
SET t_USER.can_admin_user = CALC_USER_T.can_admin
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
END IF;
|
||||
|
||||
@@ -529,10 +605,18 @@ BEGIN
|
||||
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
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- guid
|
||||
v_guid -- guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, a_auth0_id_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_user -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -541,26 +625,53 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- guid
|
||||
v_guid -- guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- get_inactive_user
|
||||
, v_ids_permission_required -- ids_permission
|
||||
, a_auth0_id_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_user -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
INSERT INTO tmp_User_Access (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
, priority_access_level_user
|
||||
, has_access
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
)
|
||||
SELECT
|
||||
CALC_USER_T.id_user
|
||||
, 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
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.guid = v_guid
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = v_guid;
|
||||
SELECT * FROM tmp_User_Access;
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT can_view
|
||||
FROM parts.DOG_Calc_User_Temp CUT
|
||||
WHERE
|
||||
CUT.GUID = v_guid
|
||||
AND can_view = 1
|
||||
) THEN
|
||||
IF NOT EXISTS (SELECT * FROM tmp_User t_USER WHERE t_USER.can_view = 1) THEN
|
||||
INSERT INTO tmp_Msg_Error (
|
||||
id_type
|
||||
, code
|
||||
@@ -569,11 +680,12 @@ BEGIN
|
||||
VALUES (
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('You do not have view permissions for ', (SELECT name FROM parts.DOG_Permission P INNER JOIN parts.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1))
|
||||
, CONCAT(
|
||||
'You do not have view permissions for '
|
||||
, (SELECT PERMISSION.name FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.id_permission = v_id_permission_user LIMIT 1)
|
||||
)
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
SET a_debug := a_debug;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_dog_clear_calc_user( v_guid, FALSE );
|
||||
@@ -582,34 +694,25 @@ BEGIN
|
||||
|
||||
IF 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
|
||||
IF a_debug = 1 THEN
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
SELECT * FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Dog_Calc_Dog;
|
||||
DELETE FROM tmp_User;
|
||||
END IF;
|
||||
|
||||
-- Returns
|
||||
/* NULL record required for flask sql_alchemy to detect result set */
|
||||
IF EXISTS (SELECT * FROM tmp_Msg_Error) THEN
|
||||
DELETE FROM tmp_User;
|
||||
INSERT INTO tmp_User ( id_user )
|
||||
VALUES ( NULL );
|
||||
END IF;
|
||||
|
||||
|
||||
SELECT
|
||||
U.id_user
|
||||
, U.id_user_auth0
|
||||
, U.firstname
|
||||
, U.surname
|
||||
, U.email
|
||||
, U.is_email_verified
|
||||
, U.is_super_user
|
||||
, t_U.can_admin_dog
|
||||
, t_U.can_admin_user
|
||||
, v_is_new AS is_new
|
||||
FROM tmp_User t_U
|
||||
INNER JOIN parts.DOG_User U ON t_U.id_user = U.id_user
|
||||
USER.id_user
|
||||
, USER.id_user_auth0
|
||||
, USER.firstname
|
||||
, USER.surname
|
||||
, USER.email
|
||||
, USER.is_email_verified
|
||||
, USER.is_super_user
|
||||
, t_USER.can_admin_dog
|
||||
, t_USER.can_admin_user
|
||||
FROM tmp_User t_USER
|
||||
INNER JOIN parts.DOG_User USER ON t_USER.id_user = USER.id_user
|
||||
;
|
||||
|
||||
# Errors
|
||||
@@ -628,14 +731,14 @@ BEGIN
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'End';
|
||||
SELECT * FROM tmp_User;
|
||||
SELECT * FROM tmp_User_Access;
|
||||
END IF;
|
||||
|
||||
-- Clean up
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Auth0_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User_Access;
|
||||
DROP TEMPORARY TABLE IF EXISTS tmp_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -645,43 +748,24 @@ END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
CALL p_dog_get_many_user (
|
||||
NULL
|
||||
, 'google-oauth2|109567376920138999933'
|
||||
, False
|
||||
, False
|
||||
-- , False
|
||||
, NULL
|
||||
, 'google-oauth2|109567376920138999933'
|
||||
, 0
|
||||
);
|
||||
NULL # a_id_user
|
||||
, 'auth0|6582b95c895d09a70ba10fef' # a_id_user_auth0
|
||||
, 0 # a_get_all_user
|
||||
, 0 # a_get_inactive_user
|
||||
-- , 0 # a_get_first_user_only
|
||||
, NULL # a_ids_user
|
||||
, 'auth0|6582b95c895d09a70ba10fef' # a_ids_user_auth0
|
||||
, 0 -- a_debug
|
||||
);*/
|
||||
/*
|
||||
select * FROM parts.DOG_Calc_User_Temp;
|
||||
delete FROM parts.DOG_Calc_User_Temp;
|
||||
|
||||
SELECT *
|
||||
FROM parts.DOG_USER;
|
||||
*/
|
||||
|
||||
CALL p_dog_get_many_user(
|
||||
NULL -- :a_id_user,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_id_user_auth0,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_id_user,
|
||||
, 1 -- :a_get_all_user,
|
||||
, 0 -- :a_get_inactive_user,
|
||||
-- , 0 -- :a_get_first_user_only,
|
||||
, NULL -- :a_ids_user,
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :a_ids_user_auth0
|
||||
, 'auth0|6582b95c895d09a70ba10fef' -- :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,
|
||||
@@ -689,4 +773,3 @@ CALL p_dog_get_many_user(
|
||||
, 0 -- a_debug
|
||||
);
|
||||
|
||||
*/
|
||||
|
||||
@@ -6,29 +6,39 @@ DROP PROCEDURE IF EXISTS p_dog_calc_user;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE p_dog_calc_user (
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_permission TEXT
|
||||
, IN a_ids_access_level TEXT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_auth0_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
, IN a_require_any_non_id_search_filters_met BIT
|
||||
, IN a_ids_permission_required TEXT
|
||||
, IN a_ids_access_level_required TEXT
|
||||
, IN a_show_errors BIT
|
||||
, IN a_debug BIT
|
||||
)
|
||||
BEGIN
|
||||
DECLARE v_code_type_error_bad_data VARCHAR(200);
|
||||
DECLARE v_code_type_error_no_permission VARCHAR(200);
|
||||
DECLARE v_has_filter_permission BIT;
|
||||
DECLARE v_has_filter_user BIT;
|
||||
DECLARE v_has_filter_access_level BIT;
|
||||
DECLARE v_id_access_level INT;
|
||||
DECLARE v_has_filter_permission BIT;
|
||||
DECLARE v_has_filter_user_auth0_id BIT;
|
||||
DECLARE v_has_filter_user_email BIT;
|
||||
DECLARE v_has_filter_user_id BIT;
|
||||
DECLARE v_has_filter_user_name BIT;
|
||||
DECLARE v_id_access_level_required INT;
|
||||
DECLARE v_id_access_level_view INT;
|
||||
DECLARE v_id_permission INT;
|
||||
DECLARE v_id_permission_required INT;
|
||||
DECLARE v_id_type_error_bad_data INT;
|
||||
DECLARE v_ids_row_delete VARCHAR(500);
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_priority_access_level_edit INT;
|
||||
DECLARE v_priority_access_level_admin INT;
|
||||
DECLARE v_priority_access_level INT;
|
||||
DECLARE v_priority_access_level_edit INT;
|
||||
DECLARE v_priority_access_level_none INT;
|
||||
DECLARE v_priority_access_level_required INT;
|
||||
DECLARE v_priority_access_level_view INT;
|
||||
DECLARE v_time_start TIMESTAMP(6);
|
||||
|
||||
DECLARE exit handler for SQLEXCEPTION
|
||||
@@ -81,33 +91,63 @@ BEGIN
|
||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||
SET v_id_type_error_bad_data := (SELECT id_type FROM parts.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1);
|
||||
|
||||
SET v_code_type_error_no_permission := (SELECT code FROM parts.CORE_Msg_Error_Type WHERE id_type = 2);
|
||||
SET v_id_access_level_view = (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||
SET v_priority_access_level_view = (SELECT priority FROM parts.DOG_Access_Level WHERE id_access_level = v_id_access_level_view);
|
||||
SET v_priority_access_level_edit = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'EDIT' LIMIT 1);
|
||||
SET v_priority_access_level_admin = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||
SET v_priority_access_level_none = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'NONE' LIMIT 1);
|
||||
|
||||
CALL parts.p_validate_guid ( a_guid );
|
||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||
SET a_get_all_user := IFNULL(a_get_all_user, 0);
|
||||
SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0);
|
||||
SET a_ids_permission := TRIM(IFNULL(a_ids_permission, ''));
|
||||
SET a_ids_access_level := TRIM(IFNULL(a_ids_access_level, ''));
|
||||
SET a_ids_user := TRIM(IFNULL(a_ids_user, ''));
|
||||
SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, ''));
|
||||
SET a_names_user := TRIM(IFNULL(a_names_user, ''));
|
||||
SET a_emails_user := TRIM(IFNULL(a_emails_user, ''));
|
||||
SET a_ids_permission_required := TRIM(IFNULL(a_ids_permission_required, ''));
|
||||
SET a_ids_access_level_required := TRIM(IFNULL(a_ids_access_level_required, ''));
|
||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 0);
|
||||
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 0);
|
||||
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, 0);
|
||||
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_ids_user
|
||||
, a_get_all_user
|
||||
, a_get_inactive_user
|
||||
, a_ids_permission
|
||||
, a_ids_access_level
|
||||
, a_ids_user
|
||||
, a_auth0_ids_user
|
||||
, a_names_user
|
||||
, a_emails_user
|
||||
, a_ids_permission_required
|
||||
, a_ids_access_level_required
|
||||
, 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_priority_access_level_view
|
||||
, v_priority_access_level_edit
|
||||
, v_priority_access_level_admin
|
||||
, v_id_access_level_view
|
||||
, v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
;
|
||||
END IF;
|
||||
|
||||
-- Clear previous proc results
|
||||
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Email_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Name_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Auth0_Id_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Id_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Calc_User;
|
||||
|
||||
-- Permanent Table
|
||||
@@ -118,15 +158,13 @@ BEGIN
|
||||
, 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_User_Calc_User (
|
||||
id_user INT NOT NULL
|
||||
, is_super_user BIT NOT NULL
|
||||
, priority_access_level INT NOT NULL
|
||||
, does_meet_id_filters BIT
|
||||
, does_meet_non_id_filters BIT
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User (
|
||||
@@ -136,25 +174,45 @@ BEGIN
|
||||
, msg TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Calc_User (
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_User (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
DELETE FROM tmp_Split_Id_Calc_User;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id_Calc_User (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Auth0_Id_Calc_User;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_User (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Name_Calc_User;
|
||||
|
||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Email_Calc_User (
|
||||
substring VARCHAR(4000) NOT NULL
|
||||
, as_int INT NULL
|
||||
);
|
||||
DELETE FROM tmp_Split_Email_Calc_User;
|
||||
|
||||
SET v_has_filter_user = CASE WHEN a_ids_user = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_permission = CASE WHEN a_ids_permission = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_access_level = CASE WHEN a_ids_access_level = '' THEN 0 ELSE 1 END;
|
||||
SET v_id_access_level_view = (SELECT id_access_level FROM parts.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1);
|
||||
SET v_priority_access_level_view = (SELECT priority FROM parts.DOG_Access_Level WHERE id_access_level = v_id_access_level_view);
|
||||
SET v_priority_access_level_edit = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'EDIT' LIMIT 1);
|
||||
SET v_priority_access_level_admin = (SELECT priority FROM parts.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1);
|
||||
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;
|
||||
SET v_has_filter_user_email = CASE WHEN a_emails_user = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_permission = CASE WHEN a_ids_permission_required = '' THEN 0 ELSE 1 END;
|
||||
SET v_has_filter_access_level = CASE WHEN a_ids_access_level_required = '' THEN 0 ELSE 1 END;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_priority_access_level_view
|
||||
, v_priority_access_level_edit
|
||||
, v_priority_access_level_admin
|
||||
v_has_filter_user_id
|
||||
, v_has_filter_user_auth0_id
|
||||
, v_has_filter_user_name
|
||||
, v_has_filter_user_email
|
||||
, v_has_filter_permission
|
||||
, v_has_filter_access_level
|
||||
;
|
||||
END IF;
|
||||
|
||||
@@ -164,17 +222,15 @@ BEGIN
|
||||
SELECT
|
||||
'p_core_split'
|
||||
, a_guid
|
||||
, a_ids_access_level
|
||||
, a_ids_access_level_required
|
||||
, ','
|
||||
, a_debug
|
||||
;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
CALL parts.p_core_split(a_guid, a_ids_access_level, ',', a_debug);
|
||||
CALL parts.p_core_split(a_guid, a_ids_access_level_required, ',', a_debug);
|
||||
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
INSERT INTO tmp_Split_Calc_User (
|
||||
INSERT INTO tmp_Split_Id_Calc_User (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
@@ -188,9 +244,9 @@ BEGIN
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Access Levels split', a_ids_access_level;
|
||||
SELECT 'Access Levels split', a_ids_access_level_required;
|
||||
SELECT *
|
||||
FROM tmp_Split_Calc_User;
|
||||
FROM tmp_Split_Id_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
@@ -198,7 +254,7 @@ BEGIN
|
||||
# Invalid IDs
|
||||
IF EXISTS (
|
||||
SELECT t_SPLIT.substring
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
@@ -214,7 +270,7 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive access level IDs: ', GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','))
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
@@ -224,9 +280,9 @@ BEGIN
|
||||
|
||||
SET v_has_filter_access_level = 0;
|
||||
ELSE
|
||||
SET v_id_access_level := (
|
||||
SET v_id_access_level_required := (
|
||||
SELECT ACCESS_LEVEL.id_access_level
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
INNER JOIN parts.DOG_Access_Level ACCESS_LEVEL
|
||||
ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
@@ -235,21 +291,17 @@ BEGIN
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
DELETE FROM tmp_Split_Id_Calc_User;
|
||||
|
||||
IF ISNULL(v_id_access_level) THEN
|
||||
SET v_id_access_level = v_id_access_level_view;
|
||||
IF ISNULL(v_id_access_level_required) THEN
|
||||
SET v_id_access_level_required = v_id_access_level_view;
|
||||
END IF;
|
||||
|
||||
SET v_priority_access_level := (SELECT priority FROM parts.DOG_Access_Level WHERE id_access_level = v_id_access_level LIMIT 1);
|
||||
|
||||
-- Permission IDs
|
||||
IF v_has_filter_permission = 1 THEN
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
CALL parts.p_core_split(a_guid, a_ids_permission, ',', a_debug);
|
||||
CALL parts.p_core_split(a_guid, a_ids_permission_required, ',', a_debug);
|
||||
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
INSERT INTO tmp_Split_Calc_User (
|
||||
INSERT INTO tmp_Split_Id_Calc_User (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
@@ -263,15 +315,15 @@ BEGIN
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Permissions split', a_ids_permission;
|
||||
SELECT 'Permissions split', a_ids_permission_required;
|
||||
SELECT *
|
||||
FROM tmp_Split_Calc_User;
|
||||
FROM tmp_Split_Id_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
|
||||
# Invalid or inactive
|
||||
IF EXISTS (SELECT PERMISSION.id_permission FROM tmp_Split_Calc_User t_SPLIT LEFT JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission WHERE ISNULL(t_SPLIT.as_int) OR ISNULL(PERMISSION.id_permission) OR PERMISSION.active = 0) THEN
|
||||
IF EXISTS (SELECT PERMISSION.id_permission FROM tmp_Split_Id_Calc_User t_SPLIT LEFT JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission WHERE ISNULL(t_SPLIT.as_int) OR ISNULL(PERMISSION.id_permission) OR PERMISSION.active = 0) THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||
id_type
|
||||
, code
|
||||
@@ -281,7 +333,7 @@ BEGIN
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive permission IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL'))
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
@@ -291,7 +343,7 @@ BEGIN
|
||||
ELSE
|
||||
SET v_id_permission_required := (
|
||||
SELECT PERMISSION.id_permission
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
INNER JOIN parts.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission
|
||||
INNER JOIN parts.DOG_Access_Level ACCESS_LEVEL ON PERMISSION.id_access_level_required = ACCESS_LEVEL.id_access_level
|
||||
ORDER BY ACCESS_LEVEL.priority ASC
|
||||
@@ -299,129 +351,398 @@ BEGIN
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
DELETE FROM tmp_Split_Id_Calc_User;
|
||||
|
||||
SET v_priority_access_level_required := (
|
||||
SELECT ACCESS_LEVEL.priority
|
||||
FROM parts.DOG_Access_Level ACCESS_LEVEL
|
||||
LEFT JOIN parts.DOG_Permission PERMISSION ON ACCESS_LEVEL.id_access_level = PERMISSION.id_access_level_required
|
||||
WHERE
|
||||
ACCESS_LEVEL.id_access_level = v_id_access_level_required
|
||||
OR PERMISSION.id_permission = v_id_permission_required
|
||||
ORDER BY ACCESS_LEVEL.priority
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
# Users
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
||||
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
INSERT INTO tmp_Split_Calc_User (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
substring
|
||||
, CONVERT(substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp
|
||||
WHERE
|
||||
GUID = a_guid
|
||||
AND NOT ISNULL(substring)
|
||||
AND substring != ''
|
||||
;
|
||||
# Ids
|
||||
IF v_has_filter_user_id = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_ids_user, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Id_Calc_User (
|
||||
substring
|
||||
, as_int
|
||||
)
|
||||
SELECT
|
||||
SPLIT_T.substring
|
||||
, CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'User Id split', a_ids_user;
|
||||
SELECT *
|
||||
FROM tmp_Split_Id_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
|
||||
# Invalid or inactive
|
||||
IF EXISTS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
)
|
||||
)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||
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.substring SEPARATOR ','), 'NULL'))
|
||||
FROM tmp_Split_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
# Auth0 Ids
|
||||
IF v_has_filter_user_auth0_id = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_auth0_ids_user, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Auth0_Id_Calc_User ( substring )
|
||||
SELECT SPLIT_T.substring
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'User Auth0 Id split', a_auth0_ids_user;
|
||||
SELECT *
|
||||
FROM tmp_Split_Auth0_Id_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
|
||||
# Invalid or inactive
|
||||
IF EXISTS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Auth0_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.substring = USER.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
)
|
||||
)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||
id_type
|
||||
, code
|
||||
, msg
|
||||
)
|
||||
SELECT
|
||||
v_id_type_error_bad_data
|
||||
, v_code_type_error_bad_data
|
||||
, CONCAT('Invalid or inactive user Auth0 IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL'))
|
||||
FROM tmp_Split_Auth0_Id_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.substring = USER.id_user_auth0
|
||||
WHERE
|
||||
ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
# Names
|
||||
IF v_has_filter_user_name = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_names_user, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Name_Calc_User ( substring )
|
||||
SELECT SPLIT_T.substring
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'User Name split', a_names_user;
|
||||
SELECT *
|
||||
FROM tmp_Split_Name_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
# Emails
|
||||
IF v_has_filter_user_email = 1 THEN
|
||||
CALL parts.p_core_split(a_guid, a_emails_user, ',', a_debug);
|
||||
|
||||
INSERT INTO tmp_Split_Email_Calc_User ( substring )
|
||||
SELECT SPLIT_T.substring
|
||||
FROM parts.CORE_Split_Temp SPLIT_T
|
||||
WHERE
|
||||
SPLIT_T.GUID = a_guid
|
||||
AND IFNULL(SPLIT_T.substring, '') != ''
|
||||
;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'User Email split', a_emails_user;
|
||||
SELECT *
|
||||
FROM tmp_Split_Email_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
END IF;
|
||||
|
||||
-- Get all users
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User 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
|
||||
INSERT INTO tmp_Calc_User (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, is_super_user
|
||||
/*
|
||||
, priority_access_level_user
|
||||
, can_view
|
||||
, can_edit
|
||||
, can_admin
|
||||
*/
|
||||
, does_meet_id_filters
|
||||
, does_meet_non_id_filters
|
||||
)
|
||||
WITH
|
||||
User_Id_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Id_Calc_User 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_Calc_User t_SPLIT_AUTH0_ID
|
||||
INNER JOIN parts.DOG_User USER ON t_SPLIT_AUTH0_ID.substring = USER.id_user_auth0
|
||||
)
|
||||
, User_Name_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Name_Calc_User 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_Email_Filter AS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Email_Calc_User t_SPLIT_EMAIL
|
||||
INNER JOIN demo.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%')
|
||||
WHERE IFNULL(t_SPLIT_EMAIL.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
|
||||
, MAX(USER_COMBINED.does_meet_email_filter) AS does_meet_email_filter
|
||||
FROM (
|
||||
SELECT
|
||||
USER_ID_FILTER.id_user
|
||||
, 1 AS does_meet_id_filter
|
||||
, 0 AS does_meet_auth0_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 0 AS does_meet_email_filter
|
||||
FROM User_Id_Filter USER_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
USER_AUTH0_ID_FILTER.id_user
|
||||
, 0 AS does_meet_id_filter
|
||||
, 1 AS does_meet_auth0_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 0 AS does_meet_email_filter
|
||||
FROM User_Auth0_Id_Filter USER_AUTH0_ID_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
USER_NAME_FILTER.id_user
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_auth0_id_filter
|
||||
, 1 AS does_meet_name_filter
|
||||
, 0 AS does_meet_email_filter
|
||||
FROM User_Name_Filter USER_NAME_FILTER
|
||||
UNION
|
||||
SELECT
|
||||
USER_EMAIL_FILTER.id_user
|
||||
, 0 AS does_meet_id_filter
|
||||
, 0 AS does_meet_auth0_id_filter
|
||||
, 0 AS does_meet_name_filter
|
||||
, 1 AS does_meet_email_filter
|
||||
FROM User_Email_Filter USER_EMAIL_FILTER
|
||||
) USER_COMBINED
|
||||
GROUP BY USER_COMBINED.id_user
|
||||
)
|
||||
SELECT
|
||||
USER.id_user -- id_user
|
||||
|
||||
, v_id_permission_required -- id_permission_required
|
||||
, v_priority_access_level_required -- priority_access_level_required
|
||||
, IFNULL(USER.is_super_user, 0) AS is_super_user
|
||||
|
||||
, 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
|
||||
AND v_has_filter_user_email = 0
|
||||
)
|
||||
OR IFNULL(USER_FILTERS.does_meet_name_filter, 0) = 1
|
||||
OR IFNULL(USER_FILTERS.does_meet_email_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_name = 1
|
||||
AND USER_FILTERS.does_meet_name_filter = 1
|
||||
)
|
||||
OR (
|
||||
v_has_filter_user_email = 1
|
||||
AND USER_FILTERS.does_meet_email_filter = 1
|
||||
)
|
||||
)
|
||||
AND (
|
||||
a_get_inactive_user = 1
|
||||
OR USER.active = 1
|
||||
)
|
||||
;
|
||||
END IF;
|
||||
|
||||
DELETE FROM tmp_Split_Id_Calc_User;
|
||||
DELETE FROM tmp_Split_Auth0_Id_Calc_User;
|
||||
DELETE FROM tmp_Split_Name_Calc_User;
|
||||
DELETE FROM tmp_Split_Email_Calc_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'Users split', a_ids_user;
|
||||
SELECT *
|
||||
FROM tmp_Split_Calc_User;
|
||||
SELECT 'After get Users';
|
||||
SELECT * FROM tmp_Calc_User;
|
||||
END IF;
|
||||
|
||||
CALL parts.p_core_clear_split( a_guid );
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT v_id_permission_required, v_id_access_level, v_priority_access_level;
|
||||
SELECT * FROM tmp_User_Calc_User;
|
||||
SELECT * FROM tmp_Msg_Error_Calc_User;
|
||||
END IF;
|
||||
|
||||
# Invalid or inactive
|
||||
IF EXISTS (
|
||||
SELECT USER.id_user
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
-- Filter records
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User 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_Calc_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
|
||||
)
|
||||
)
|
||||
THEN
|
||||
INSERT INTO tmp_Msg_Error_Calc_User (
|
||||
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.substring SEPARATOR ','), 'NULL'))
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
LEFT JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||
WHERE
|
||||
ISNULL(t_SPLIT.as_int)
|
||||
OR ISNULL(USER.id_user)
|
||||
OR (
|
||||
a_get_inactive_user = 0
|
||||
AND USER.active = 0
|
||||
)
|
||||
;
|
||||
ELSE
|
||||
IF NOT EXISTS (SELECT * FROM tmp_Split_Calc_User) THEN
|
||||
INSERT INTO tmp_Split_Calc_User ( substring, as_int )
|
||||
VALUES ( '', NULL );
|
||||
END IF;
|
||||
|
||||
INSERT INTO tmp_User_Calc_User (
|
||||
id_user
|
||||
, is_super_user
|
||||
, priority_access_level
|
||||
)
|
||||
SELECT
|
||||
USER.id_user
|
||||
, IFNULL(USER.is_super_user, 0) AS is_super_user
|
||||
, IFNULL(MIN(ACCESS_LEVEL.priority), v_priority_access_level_view) AS priority_access_level
|
||||
FROM tmp_Split_Calc_User t_SPLIT
|
||||
INNER JOIN parts.DOG_User USER ON t_SPLIT.as_int = USER.id_user
|
||||
LEFT JOIN parts.DOG_User_Role_Link USER_ROLE_LINK
|
||||
ON USER.id_user = USER_ROLE_LINK.id_user
|
||||
AND USER_ROLE_LINK.active
|
||||
LEFT JOIN parts.DOG_Role_Permission_Link ROLE_PERMISSION_LINK
|
||||
ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role
|
||||
AND ROLE_PERMISSION_LINK.active
|
||||
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL
|
||||
ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active
|
||||
GROUP BY USER.id_user
|
||||
;
|
||||
|
||||
INSERT INTO tmp_Calc_User (
|
||||
id_user
|
||||
, id_permission_required
|
||||
, priority_access_level_required
|
||||
, priority_access_level_user
|
||||
, is_super_user
|
||||
)
|
||||
SELECT
|
||||
t_USER.id_user
|
||||
, v_id_permission_required
|
||||
, v_priority_access_level AS priority_access_level_required
|
||||
, t_USER.is_super_user AS is_super_user
|
||||
, t_USER.priority_access_level AS priority_access_level_user
|
||||
FROM tmp_User_Calc_User t_USER
|
||||
;
|
||||
|
||||
# SET v_has_filter_user = EXISTS ( SELECT * FROM tmp_User_Calc_User LIMIT 1 );
|
||||
END IF;
|
||||
DELETE FROM tmp_Split_Calc_User;
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After filter Users';
|
||||
SELECT * FROM tmp_Calc_User;
|
||||
END IF;
|
||||
|
||||
-- Calculated fields
|
||||
-- Priority Access Level User
|
||||
WITH User_Access_Level AS (
|
||||
SELECT
|
||||
USER.id_user
|
||||
, MIN(IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none)) AS priority_access_level
|
||||
FROM parts.DOG_User USER -- tmp_Calc_User t_CALC_USER
|
||||
LEFT JOIN parts.DOG_User_Role_Link USER_ROLE_LINK
|
||||
ON USER.id_user = USER_ROLE_LINK.id_user
|
||||
AND USER_ROLE_LINK.active = 1
|
||||
LEFT JOIN parts.DOG_Role_Permission_Link ROLE_PERMISSION_LINK
|
||||
ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role
|
||||
AND ROLE_PERMISSION_LINK.active = 1
|
||||
LEFT JOIN parts.DOG_Access_Level ACCESS_LEVEL
|
||||
ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||
AND ACCESS_LEVEL.active = 1
|
||||
GROUP BY USER.id_user
|
||||
)
|
||||
UPDATE tmp_Calc_User t_CALC_USER
|
||||
INNER JOIN User_Access_Level USER_ACCESS_LEVEL ON t_CALC_USER.id_user = USER_ACCESS_LEVEL.id_user
|
||||
SET
|
||||
t_CALC_USER.priority_access_level_user = USER_ACCESS_LEVEL.priority_access_level
|
||||
, t_CALC_USER.has_access = CASE WHEN USER_ACCESS_LEVEL.priority_access_level <= v_priority_access_level_required THEN 1 ELSE 0 END
|
||||
;
|
||||
|
||||
-- Has access
|
||||
UPDATE tmp_Calc_User t_CALC_USER
|
||||
SET
|
||||
t_CALC_USER.can_view = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_view AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||
, t_CALC_USER.can_edit = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_edit AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||
, t_CALC_USER.can_admin = t_CALC_USER.is_super_user = 1 OR (t_CALC_USER.priority_access_level_user <= v_priority_access_level_admin AND t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required)
|
||||
t_CALC_USER.can_view = CASE WHEN
|
||||
t_CALC_USER.is_super_user = 1
|
||||
OR (
|
||||
t_CALC_USER.priority_access_level_user <= v_priority_access_level_view
|
||||
AND t_CALC_USER.has_access = 1
|
||||
)
|
||||
THEN 1 ELSE 0 END
|
||||
, t_CALC_USER.can_edit = CASE WHEN
|
||||
t_CALC_USER.is_super_user = 1
|
||||
OR (
|
||||
t_CALC_USER.priority_access_level_user <= v_priority_access_level_edit
|
||||
AND t_CALC_USER.has_access = 1
|
||||
)
|
||||
THEN 1 ELSE 0 END
|
||||
, t_CALC_USER.can_admin = CASE WHEN
|
||||
t_CALC_USER.is_super_user = 1
|
||||
OR (
|
||||
t_CALC_USER.priority_access_level_user <= v_priority_access_level_admin
|
||||
AND t_CALC_USER.has_access = 1
|
||||
)
|
||||
THEN 1 ELSE 0 END
|
||||
;
|
||||
|
||||
-- Export data to staging table
|
||||
@@ -446,7 +767,7 @@ BEGIN
|
||||
, t_CALC_USER.priority_access_level_required
|
||||
, t_CALC_USER.is_super_user
|
||||
, t_CALC_USER.priority_access_level_user
|
||||
, CASE WHEN t_CALC_USER.priority_access_level_user <= t_CALC_USER.priority_access_level_required THEN 1 ELSE 0 END AS has_access
|
||||
, t_CALC_USER.has_access
|
||||
, t_CALC_USER.can_view
|
||||
, t_CALC_USER.can_edit
|
||||
, t_CALC_USER.can_admin
|
||||
@@ -473,17 +794,19 @@ BEGIN
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'End';
|
||||
SELECT * FROM tmp_Msg_Error_Calc_User;
|
||||
SELECT * FROM tmp_Calc_User;
|
||||
SELECT * FROM tmp_User_Calc_User;
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = a_guid;
|
||||
CALL parts.p_dog_clear_calc_user ( a_guid, a_debug );
|
||||
END IF;
|
||||
|
||||
-- Clean up
|
||||
DROP TABLE IF EXISTS tmp_Split_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Email_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Name_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Auth0_Id_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Split_Id_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_User_Calc_User;
|
||||
DROP TABLE IF EXISTS tmp_Calc_User;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
@@ -492,30 +815,23 @@ BEGIN
|
||||
END //
|
||||
DELIMITER ;
|
||||
|
||||
|
||||
/*
|
||||
|
||||
CALL parts.p_dog_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- a_ids_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '2' -- a_ids_permission
|
||||
, '1' -- a_ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
CALL parts.p_dog_calc_user (
|
||||
'chips ' -- a_guid
|
||||
, 1 -- a_ids_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '2' -- a_ids_permission
|
||||
, '1' -- a_ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
SELECT * FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||
DELETE FROM parts.DOG_Calc_User_Temp WHERE GUID = 'chips ';
|
||||
|
||||
*/
|
||||
IN a_guid BINARY(36)
|
||||
, IN a_get_all_user BIT
|
||||
, IN a_get_inactive_user BIT
|
||||
, IN a_ids_user TEXT
|
||||
, IN a_auth0_ids_user TEXT
|
||||
, IN a_names_user TEXT
|
||||
, IN a_emails_user TEXT
|
||||
, IN a_require_all_id_search_filters_met BIT
|
||||
, IN a_require_any_id_search_filters_met BIT
|
||||
, IN a_require_all_non_id_search_filters_met BIT
|
||||
, IN a_require_any_non_id_search_filters_met BIT
|
||||
, IN a_ids_permission_required TEXT
|
||||
, IN a_ids_access_level_required TEXT
|
||||
, IN a_show_errors BIT
|
||||
, IN a_debug BIT
|
||||
|
||||
|
||||
-- SELECT * FROM parts.DOG_Calc_User_Temp;
|
||||
@@ -526,10 +842,18 @@ DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
'chips '-- a_guid
|
||||
, '1' -- a_ids_user
|
||||
, 0 -- a_get_all_user
|
||||
, 0 -- a_get_inactive_user
|
||||
, '8' -- a_ids_permission
|
||||
, '1' -- a_ids_access_level
|
||||
, '1' -- a_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
|
||||
, 1 -- a_require_any_non_id_search_filters_met
|
||||
, '8' -- a_ids_permission_required
|
||||
, '1' -- a_ids_access_level_required
|
||||
, 1 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
);
|
||||
@@ -538,3 +862,4 @@ CALL parts.p_dog_clear_calc_user ( 'chips ', 0 );
|
||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User;
|
||||
|
||||
|
||||
*/
|
||||
|
||||
@@ -348,6 +348,11 @@ BEGIN
|
||||
|
||||
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 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
|
||||
@@ -373,13 +378,26 @@ BEGIN
|
||||
;
|
||||
END IF;
|
||||
|
||||
IF a_debug = 1 THEN
|
||||
SELECT 'After filter dogs';
|
||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
||||
END IF;
|
||||
|
||||
-- Permissions
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, 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
|
||||
@@ -388,8 +406,16 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, 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
|
||||
@@ -401,7 +427,7 @@ BEGIN
|
||||
INTO
|
||||
v_can_view
|
||||
FROM parts.DOG_Calc_User_Temp CALC_USER_T
|
||||
WHERE CALC_USER_T.GUID = a_guid
|
||||
WHERE CALC_USER_T.guid = a_guid
|
||||
LIMIT 1
|
||||
;
|
||||
|
||||
|
||||
@@ -146,9 +146,17 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid -- guid
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, 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
|
||||
, a_debug -- a_debug
|
||||
@@ -157,8 +165,16 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid-- guid
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, FALSE -- a_get_inactive_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
|
||||
|
||||
@@ -214,10 +214,18 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_admin
|
||||
, v_id_permission_dog_new
|
||||
, 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_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_debug
|
||||
;
|
||||
END IF;
|
||||
@@ -225,9 +233,17 @@ BEGIN
|
||||
-- Can Admin
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_admin-- ids_permission
|
||||
, 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_admin -- ids_permission
|
||||
, v_id_access_level_admin -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
@@ -250,9 +266,17 @@ BEGIN
|
||||
-- Can Create
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_new-- ids_permission
|
||||
, 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_new -- ids_permission
|
||||
, v_id_access_level_create -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
, 0 -- a_debug
|
||||
|
||||
@@ -891,9 +891,17 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
a_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, 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
|
||||
@@ -902,8 +910,16 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
a_guid -- a_guid
|
||||
, a_id_user -- a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, 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
|
||||
|
||||
@@ -182,9 +182,17 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- ids_permission
|
||||
, 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
|
||||
@@ -193,8 +201,16 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, 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
|
||||
|
||||
@@ -285,9 +285,17 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- A_ids_permission
|
||||
, 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
|
||||
@@ -296,9 +304,17 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid -- a_guid
|
||||
, a_id_user -- a_ids_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_dog_view -- a_ids_permission
|
||||
, 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
|
||||
|
||||
@@ -76,6 +76,12 @@ VALUES
|
||||
, 'Admin'
|
||||
, 1
|
||||
)
|
||||
, (
|
||||
4
|
||||
, 'NONE'
|
||||
, 'None'
|
||||
, 999
|
||||
)
|
||||
;
|
||||
|
||||
-- Permission Groups
|
||||
|
||||
@@ -252,8 +252,16 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_command_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
@@ -263,8 +271,16 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, 0 -- get_all_user
|
||||
, 0 -- get_inactive_user
|
||||
, a_id_user -- ids_user
|
||||
, '' -- a_auth0_ids_user
|
||||
, '' -- a_names_user
|
||||
, '' -- a_emails_user
|
||||
, 1 -- a_require_all_id_search_filters_met
|
||||
, 1 -- a_require_any_id_search_filters_met
|
||||
, 0 -- a_require_all_non_id_search_filters_met
|
||||
, 0 -- a_require_any_non_id_search_filters_met
|
||||
, v_id_permission_command_view -- ids_permission
|
||||
, v_id_access_level_view -- ids_access_level
|
||||
, 0 -- a_show_errors
|
||||
|
||||
@@ -289,9 +289,17 @@ BEGIN
|
||||
IF a_debug = 1 THEN
|
||||
SELECT
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_understanding_level_view -- ids_permission
|
||||
, 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
|
||||
@@ -300,9 +308,17 @@ BEGIN
|
||||
|
||||
CALL parts.p_dog_calc_user(
|
||||
v_guid
|
||||
, a_id_user
|
||||
, FALSE -- a_get_inactive_user
|
||||
, v_id_permission_understanding_level_view -- ids_permission
|
||||
, 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
|
||||
|
||||
@@ -37,7 +37,9 @@
|
||||
width: 90vh;
|
||||
}
|
||||
|
||||
#tableMain select, #tableMain input:not([type="checkbox"]), #tableMain textarea, #tableMain div {
|
||||
#tableMain select,
|
||||
#tableMain input:not([type="checkbox"]),
|
||||
#tableMain textarea, #tableMain div {
|
||||
box-sizing: border-box;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
@@ -52,14 +54,36 @@
|
||||
height: 5vh;
|
||||
padding-top: 0.5vh;
|
||||
}
|
||||
#tableMain tbody tr td:has(.dirty) {
|
||||
background-color: var(--colour-primary);
|
||||
}
|
||||
#tableMain tbody tr:not(:last-of-type) td {
|
||||
padding-bottom: 0.5vh;
|
||||
}
|
||||
#tableMain thead tr th.active, #tableMain tbody tr td.active {
|
||||
#tableMain thead tr th.active,
|
||||
#tableMain tbody tr td.active {
|
||||
width: 6vh;
|
||||
min-width: 6vh;
|
||||
}
|
||||
#tableMain tbody tr td.display_order, #tableMain thead tr th.display_order {
|
||||
#tableMain thead tr th.active svg.active.add {
|
||||
fill: var(--colour-primary);
|
||||
background-color: var(--colour-accent);
|
||||
border: 2px solid var(--colour-accent);
|
||||
padding: 0;
|
||||
border-radius: 1vh;
|
||||
}
|
||||
#tableMain tbody tr td.active svg.active.add {
|
||||
fill: var(--colour-primary);
|
||||
}
|
||||
#tableMain tbody tr td.active svg.active.delete {
|
||||
fill: var(--colour-error);
|
||||
}
|
||||
#tableMain tbody tr td.display_order,
|
||||
#tableMain thead tr th.display_order {
|
||||
width: 5vh;
|
||||
min-width: 5vh;
|
||||
}
|
||||
|
||||
#container-template-elements {
|
||||
display: none;
|
||||
}
|
||||
@@ -122,7 +122,7 @@ export default class DOM {
|
||||
else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {
|
||||
returnVal = element.value;
|
||||
}
|
||||
else if (tagName === 'BUTTON' && element.classList.contains(flagActive)) {
|
||||
else if (element.classList.contains(flagButton) && element.classList.contains(flagActive)) { // tagName === 'BUTTON'
|
||||
returnVal = element.classList.contains(flagDelete);
|
||||
}
|
||||
else if (tagName === 'TD') {
|
||||
@@ -218,4 +218,15 @@ export default class DOM {
|
||||
option.selected = optionJson.selected;
|
||||
return option;
|
||||
}
|
||||
|
||||
static escapeHtml(text) {
|
||||
const div = document.createElement('div');
|
||||
div.textContent = text;
|
||||
return div.innerHTML;
|
||||
}
|
||||
static unescapeHtml(html) {
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
return div.textContent || div.innerText || '';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ export default class Utils {
|
||||
return list;
|
||||
}
|
||||
static consoleLogIfNotProductionEnvironment(message) {
|
||||
if (!environment.is_production) {
|
||||
if (environment.is_production != "true") {
|
||||
console.log(message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -389,10 +389,10 @@ export default class TableBasePage extends BasePage {
|
||||
let wasDirtyElement = element.classList.contains(flagDirty);
|
||||
let isDirtyElement = DOM.updateAndCheckIsElementDirty(element);
|
||||
Utils.consoleLogIfNotProductionEnvironment({isDirtyElement, wasDirtyElement, wasDirtyParentRows});
|
||||
let td = DOM.getCellFromElement(element);
|
||||
DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));
|
||||
// let td = DOM.getCellFromElement(element);
|
||||
// DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));
|
||||
if (isDirtyElement != wasDirtyElement) {
|
||||
DOM.handleDirtyElement(td, isDirtyElement);
|
||||
// DOM.handleDirtyElement(td, isDirtyElement);
|
||||
this.updateAndToggleShowButtonsSaveCancel();
|
||||
this.cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows);
|
||||
}
|
||||
@@ -402,7 +402,7 @@ export default class TableBasePage extends BasePage {
|
||||
let parent = element;
|
||||
let isDirty;
|
||||
while (parent) {
|
||||
if (parent.matches('tr')) {
|
||||
if (parent.tagName.toUpperCase() == 'TR') {
|
||||
isDirty = parent.classList.contains(flagDirty)
|
||||
rows.push(isDirty);
|
||||
}
|
||||
@@ -412,11 +412,8 @@ export default class TableBasePage extends BasePage {
|
||||
}
|
||||
cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows) {
|
||||
if (Validation.isEmpty(wasDirtyParentRows)) return;
|
||||
let td = DOM.getCellFromElement(element);
|
||||
let isDirtyTd = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);
|
||||
DOM.handleDirtyElement(td, isDirtyTd);
|
||||
let tr = DOM.getRowFromElement(td);
|
||||
let isDirtyRow = isDirtyTd || DOM.hasDirtyChildrenContainer(tr);
|
||||
let tr = DOM.getRowFromElement(element);
|
||||
let isDirtyRow = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);
|
||||
let wasDirtyRow = wasDirtyParentRows.shift();
|
||||
Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});
|
||||
if (isDirtyRow != wasDirtyRow) {
|
||||
@@ -440,7 +437,7 @@ export default class TableBasePage extends BasePage {
|
||||
this.hookupChangeHandlerTableCells(idTableMain + ' tbody tr td.' + flagDescription + ' textarea');
|
||||
}
|
||||
hookupFieldsActive(flagTable = '', handleClickRowNew = (event, element) => { this.handleClickAddRowTable(event, element); }) {
|
||||
let selectorButton = 'table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' button';
|
||||
let selectorButton = 'table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;
|
||||
let selectorButtonDelete = selectorButton + '.' + flagDelete;
|
||||
let selectorButtonUndelete = selectorButton + ':not(.' + flagDelete + ')';
|
||||
Utils.consoleLogIfNotProductionEnvironment("hookupFieldsActive: ", selectorButtonDelete, selectorButtonUndelete);
|
||||
@@ -448,7 +445,7 @@ export default class TableBasePage extends BasePage {
|
||||
this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete);
|
||||
this.hookupEventHandler(
|
||||
"click"
|
||||
, 'table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' button'
|
||||
, 'table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' .' + flagButton + '.' + flagActive
|
||||
, (event, button) => { handleClickRowNew(event, button); }
|
||||
);
|
||||
}
|
||||
@@ -458,18 +455,23 @@ export default class TableBasePage extends BasePage {
|
||||
});
|
||||
}
|
||||
handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {
|
||||
if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;
|
||||
let valuePrevious = DOM.getElementAttributeValuePrevious(element);
|
||||
let wasDirty = element.classList.contains(flagDirty);
|
||||
let row = DOM.getRowFromElement(element);
|
||||
if (row.classList.contains(flagRowNew) && !DOM.hasDirtyChildrenContainer(row)) {
|
||||
row.parentNode.removeChild(row);
|
||||
}
|
||||
let buttonAdd = element.cloneNode(false);
|
||||
buttonAdd.classList.remove(flagInitialised);
|
||||
buttonAdd.classList.remove(flagDelete);
|
||||
buttonAdd.classList.add(flagAdd);
|
||||
buttonAdd.textContent = '+';
|
||||
element.replaceWith(buttonAdd);
|
||||
changeHandler(null, buttonAdd);
|
||||
this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });
|
||||
else {
|
||||
let buttonAddTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagAdd);
|
||||
let buttonAdd = buttonAddTemplate.cloneNode(true);
|
||||
DOM.setElementAttributeValuePrevious(buttonAdd, valuePrevious);
|
||||
DOM.setElementAttributeValueCurrent(buttonAdd, false);
|
||||
if (wasDirty) buttonAdd.classList.add(flagDirty);
|
||||
element.replaceWith(buttonAdd);
|
||||
changeHandler(null, buttonAdd);
|
||||
this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });
|
||||
}
|
||||
this.updateAndToggleShowButtonsSaveCancel();
|
||||
}
|
||||
hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {
|
||||
@@ -478,11 +480,14 @@ export default class TableBasePage extends BasePage {
|
||||
});
|
||||
}
|
||||
handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {
|
||||
let buttonDelete = element.cloneNode(false);
|
||||
buttonDelete.classList.remove(flagInitialised);
|
||||
buttonDelete.classList.remove(flagAdd);
|
||||
buttonDelete.classList.add(flagDelete);
|
||||
buttonDelete.textContent = 'x';
|
||||
if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;
|
||||
let valuePrevious = DOM.getElementAttributeValuePrevious(element);
|
||||
let wasDirty = DOM.isElementDirty(element);
|
||||
let buttonDeleteTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagDelete);
|
||||
let buttonDelete = buttonDeleteTemplate.cloneNode(true);
|
||||
DOM.setElementAttributeValuePrevious(buttonDelete, valuePrevious);
|
||||
DOM.setElementAttributeValueCurrent(buttonDelete, true);
|
||||
if (wasDirty) buttonDelete.classList.add(flagDirty);
|
||||
element.replaceWith(buttonDelete);
|
||||
changeHandler(null, buttonDelete);
|
||||
this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
|
||||
{% if colour is not defined %}
|
||||
{% set colour = model.COLOUR_PRIMARY %}
|
||||
{% if class_name is not defined %}
|
||||
{% set class_name = '' %}
|
||||
{% endif %}
|
||||
|
||||
{% if attribute_text is not defined %}
|
||||
{% set attribute_text = '' %}
|
||||
{% endif %}
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"
|
||||
fill="{{ colour }}"
|
||||
class="{{ model.FLAG_BUTTON }} {{ model.FLAG_ICON }} {{ model.FLAG_ADD }} {{ model.FLAG_ACTIVE }}"
|
||||
class="{{ model.FLAG_BUTTON }} {{ model.FLAG_ICON }} {{ model.FLAG_ADD }} {{ class_name }}"
|
||||
{{ attribute_text }}
|
||||
>
|
||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
||||
<path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"/>
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
|
||||
{% if colour is not defined %}
|
||||
{% set colour = model.COLOUR_PRIMARY %}
|
||||
{% if class_name is not defined %}
|
||||
{% set class_name = '' %}
|
||||
{% endif %}
|
||||
|
||||
{% if attribute_text is not defined %}
|
||||
{% set attribute_text = '' %}
|
||||
{% endif %}
|
||||
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
|
||||
fill="{{ colour }}"
|
||||
class="{{ model.FLAG_BUTTON }} {{ model.FLAG_ICON }} {{ model.FLAG_DELETE }} {{ model.FLAG_ACTIVE }}"
|
||||
class="{{ model.FLAG_BUTTON }} {{ model.FLAG_ICON }} {{ model.FLAG_DELETE }} {{ model.FLAG_ACTIVE }} {{ class_name }}"
|
||||
{{ attribute_text }}
|
||||
>
|
||||
<!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.-->
|
||||
<path d="M135.2 17.7L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-7.2-14.3C307.4 6.8 296.3 0 284.2 0L163.8 0c-12.1 0-23.2 6.8-28.6 17.7zM416 128L32 128 53.2 467c1.6 25.3 22.6 45 47.9 45l245.8 0c25.3 0 46.3-19.7 47.9-45L416 128z"/>
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
|
||||
<div class="{{ model.FLAG_COMMAND }}" >{% if not is_blank_row %}{{ command.name }}{% endif %}</div>
|
||||
{% set value_previous = '0' if is_blank_row else command.id_command %}
|
||||
{% set text_previous = '' if is_blank_row else command.name %}
|
||||
|
||||
<div class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value_previous }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value_previous }}">{{ text_previous }}</div>
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
|
||||
<div class="{{ model.FLAG_COMMAND_CATEGORY }}" >{% if not is_blank_row %}{{ command_category.name }}{% endif %}</div>
|
||||
{% set value_previous = '0' if is_blank_row else command_category.id_command_category %}
|
||||
{% set text_previous = '' if is_blank_row else command_category.name %}
|
||||
|
||||
<div class="{{ model.FLAG_COMMAND_CATEGORY }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value_previous }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value_previous }}">{{ text_previous }}</div>
|
||||
|
||||
@@ -1,2 +1,5 @@
|
||||
|
||||
<div class="{{ model.FLAG_DOG }}" >{% if not is_blank_row %}{{ dog.name }}{% endif %}</div>
|
||||
{% set value_previous = '0' if is_blank_row else dog.id_dog %}
|
||||
{% set text_previous = '' if is_blank_row else dog.name %}
|
||||
|
||||
<div class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value_previous }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value_previous }}">{{ text_previous }}</div>
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
|
||||
{% if is_blank_row %}
|
||||
<tr class="{{ model.FLAG_ROW_NEW }} {{ model.FLAG_DOG_COMMAND_LINK }}" {{ model.ATTR_ID_DOG_COMMAND_LINK }}>
|
||||
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
<td class="{{ model.FLAG_DOG }}">
|
||||
{% include 'components/dog/_preview_DDL_dog.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COMMAND_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
<td class="{{ model.FLAG_COMMAND_CATEGORY }}">
|
||||
{% include 'components/dog/_preview_DDL_command_category.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}="0">
|
||||
<td class="{{ model.FLAG_COMMAND }}">
|
||||
{% include 'components/dog/_preview_DDL_command.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION}}">
|
||||
@@ -16,28 +16,28 @@
|
||||
<td class="{{ model.FLAG_NOTES}}">
|
||||
<textarea class="{{ model.FLAG_NOTES }}" {{ model.ATTR_VALUE_CURRENT }} {{ model.ATTR_VALUE_PREVIOUS }}></textarea>
|
||||
</td>
|
||||
{% set active = true %}
|
||||
{% set active = True %}
|
||||
{% include 'components/dog/_td_active.html' %}
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr class="{{ model.FLAG_DOG_COMMAND_LINK }}" {{ model.ATTR_ID_DOG_COMMAND_LINK }}="{{ link.id_link }}">
|
||||
{% set dog = link.dog %}
|
||||
<td class="{{ model.FLAG_DOG }}" {{ model.ATTR_VALUE_CURRENT }}="{{ dog.id_dog }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ dog.id_dog }}">
|
||||
<td class="{{ model.FLAG_DOG }}">
|
||||
{% include 'components/dog/_preview_DDL_dog.html' %}
|
||||
</td>
|
||||
{% set command_category = link.command.command_category %}
|
||||
<td class="{{ model.FLAG_COMMAND_CATEGORY }}" {{ model.ATTR_VALUE_CURRENT }}="{{ command_category.id_command_category }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ command_category.id_command_category }}">
|
||||
<td class="{{ model.FLAG_COMMAND_CATEGORY }}">
|
||||
{% include 'components/dog/_preview_DDL_command_category.html' %}
|
||||
</td>
|
||||
{% set command = link.command %}
|
||||
<td class="{{ model.FLAG_COMMAND }}" {{ model.ATTR_VALUE_CURRENT }}="{{ command.id_command }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ command.id_command }}">
|
||||
<td class="{{ model.FLAG_COMMAND }}">
|
||||
{% include 'components/dog/_preview_DDL_command.html' %}
|
||||
</td>
|
||||
<td class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION}}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.hand_signal_description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.hand_signal_description }}">
|
||||
<textarea class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.hand_signal_description }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.hand_signal_description }}">{{ link.hand_signal_description }}</textarea>
|
||||
<td class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION}}">
|
||||
<textarea class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.hand_signal_description|escape }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.hand_signal_description|escape }}">{{ link.hand_signal_description }}</textarea>
|
||||
</td>
|
||||
<td class="{{ model.FLAG_NOTES}}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.notes }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.notes }}">
|
||||
<textarea class="{{ model.FLAG_NOTES }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.notes }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.notes }}">{{ link.notes }}</textarea>
|
||||
<td class="{{ model.FLAG_NOTES}}">
|
||||
<textarea class="{{ model.FLAG_NOTES }}" {{ model.ATTR_VALUE_CURRENT }}="{{ link.notes|escape }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.notes|escape }}">{{ link.notes }}</textarea>
|
||||
</td>
|
||||
{% set active = link.active %}
|
||||
{% include 'components/dog/_td_active.html' %}
|
||||
|
||||
@@ -2,21 +2,13 @@
|
||||
|
||||
{% with _active = (active is not defined or active or active is none) %}
|
||||
<td class="{{ model.FLAG_ACTIVE }}">
|
||||
{#
|
||||
<input class="{{ model.FLAG_ACTIVE }}" type="checkbox" {% if active %}checked{% endif %} {{ model.ATTR_VALUE_CURRENT }}="{{ active | lower }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ active | lower }}">
|
||||
#}
|
||||
{#
|
||||
<button type="button" class="{{ model.FLAG_ACTIVE }} {% if active %}{{ model.FLAG_DELETE }}{% endif %}"
|
||||
{{ model.ATTR_VALUE_CURRENT }}="{{ active | lower }}"
|
||||
{{ model.ATTR_VALUE_PREVIOUS }}="{{ active | lower }}"
|
||||
>{% if active %}x{% else %}+{% endif %}</button>
|
||||
#}
|
||||
{% if active %}
|
||||
{% set colour = model.COLOUR_ERROR %}
|
||||
{% set attribute_text = model.ATTR_VALUE_CURRENT + '=' + _active | lower + ' ' + model.ATTR_VALUE_PREVIOUS + '=' + _active | lower + '' %}
|
||||
{% if _active %}
|
||||
{% set class_name = '' %}
|
||||
{% include 'components/common/buttons/_icon_trash.html' %}
|
||||
{% else %}
|
||||
{% set colour = model.COLOUR_PRIMARY %}
|
||||
{% set class_name = model.FLAG_ACTIVE %}
|
||||
{% include 'components/common/buttons/_icon_add.html' %}
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
|
||||
@@ -60,8 +60,8 @@
|
||||
var colourTextLinkVisited = "{{ model.COLOUR_TEXT_LINK_VISITED }}";
|
||||
var environment = {
|
||||
"name": "{{ model.app.app_config.FLASK_ENV }}",
|
||||
"is_production": "{{ model.app.app_config.is_production }}",
|
||||
"is_development": "{{ model.app.app_config.is_development }}",
|
||||
"is_production": "{{ model.app.app_config.is_production | lower }}",
|
||||
"is_development": "{{ model.app.app_config.is_development | lower }}",
|
||||
};
|
||||
var flagAccessLevel = "{{ model.FLAG_ACCESS_LEVEL }}";
|
||||
var flagAccessLevelRequired = "{{ model.FLAG_ACCESS_LEVEL_REQUIRED }}";
|
||||
@@ -179,6 +179,7 @@
|
||||
var hashPageUserLogout = "{{ model.HASH_PAGE_USER_LOGOUT }}";
|
||||
var idButtonApplyFilters = "#{{ model.ID_BUTTON_APPLY_FILTERS }}";
|
||||
var idButtonHamburger = "#{{ model.ID_BUTTON_HAMBURGER }}";
|
||||
var idContainerTemplateElements = "#{{ model.ID_CONTAINER_TEMPLATE_ELEMENTS }}";
|
||||
var idCSRFToken = "#{{ model.ID_CSRF_TOKEN }}";
|
||||
var idFormFilters = "#{{ model.ID_FORM_FILTERS }}";
|
||||
var idLabelError = "#{{ model.ID_LABEL_ERROR }}";
|
||||
|
||||
@@ -59,7 +59,8 @@
|
||||
<th class="{{ model.FLAG_HAND_SIGNAL_DESCRIPTION }}">Hand Signal</th>
|
||||
<th class="{{ model.FLAG_NOTES }}">Notes</th>
|
||||
<th class="{{ model.FLAG_ACTIVE }}">
|
||||
{% set colour = model.COLOUR_PRIMARY %}
|
||||
{% set class_name = model.FLAG_ACTIVE %}
|
||||
{% set attribute_text = '' %}
|
||||
{% include 'components/common/buttons/_icon_add.html' %}
|
||||
</th>
|
||||
</tr>
|
||||
@@ -78,6 +79,17 @@
|
||||
{% include 'components/common/temporary/_overlay_confirm.html' %}
|
||||
{% include 'components/common/temporary/_overlay_error.html' %}
|
||||
|
||||
<div id="{{ model.ID_CONTAINER_TEMPLATE_ELEMENTS }}">
|
||||
<!-- Active column -->
|
||||
<!-- Delete -->
|
||||
{% set class_name = '' %}
|
||||
{% include 'components/common/buttons/_icon_trash.html' %}
|
||||
<!-- Undelete -->
|
||||
{% set class_name = model.FLAG_ACTIVE %}
|
||||
{% set attribute_text = '' %}
|
||||
{% include 'components/common/buttons/_icon_add.html' %}
|
||||
</div>
|
||||
|
||||
<script src="{{ url_for('routes_dog.scripts_section_dog') }}"></script>
|
||||
|
||||
<script>
|
||||
|
||||
Reference in New Issue
Block a user