Feat: New blog article page.
@@ -142,19 +142,29 @@ class Parameters_Button_Shape(Get_Many_Parameters_Base):
|
|||||||
ids_button_shape: str
|
ids_button_shape: str
|
||||||
names_button_shape: str
|
names_button_shape: str
|
||||||
notes_button_shape: str
|
notes_button_shape: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_button_shape = True
|
get_all_button_shape = True
|
||||||
, get_inactive_button_shape = False
|
, get_inactive_button_shape = False
|
||||||
, ids_button_shape = ''
|
, ids_button_shape = ''
|
||||||
, names_button_shape = ''
|
, names_button_shape = ''
|
||||||
, notes_button_shape = ''
|
, notes_button_shape = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -169,6 +179,11 @@ class Parameters_Button_Shape(Get_Many_Parameters_Base):
|
|||||||
, ids_button_shape = json.get('a_ids_button_shape', '')
|
, ids_button_shape = json.get('a_ids_button_shape', '')
|
||||||
, names_button_shape = json.get('a_names_button_shape', '')
|
, names_button_shape = json.get('a_names_button_shape', '')
|
||||||
, notes_button_shape = json.get('a_notes_button_shape', '')
|
, notes_button_shape = json.get('a_notes_button_shape', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -197,6 +212,11 @@ class Parameters_Button_Shape(Get_Many_Parameters_Base):
|
|||||||
, 'a_ids_button_shape': self.ids_button_shape
|
, 'a_ids_button_shape': self.ids_button_shape
|
||||||
, 'a_names_button_shape': self.names_button_shape
|
, 'a_names_button_shape': self.names_button_shape
|
||||||
, 'a_notes_button_shape': self.notes_button_shape
|
, 'a_notes_button_shape': self.notes_button_shape
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -189,6 +189,11 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
names_command: str
|
names_command: str
|
||||||
hand_signal_default_descriptions_command: str
|
hand_signal_default_descriptions_command: str
|
||||||
notes_command: str
|
notes_command: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
@@ -197,7 +202,7 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
output_commands: bool
|
output_commands: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_command_category = True
|
get_all_command_category = True
|
||||||
, get_inactive_command_category = False
|
, get_inactive_command_category = False
|
||||||
@@ -209,6 +214,11 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
, names_command = ''
|
, names_command = ''
|
||||||
, hand_signal_default_descriptions_command = ''
|
, hand_signal_default_descriptions_command = ''
|
||||||
, notes_command = ''
|
, notes_command = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -230,6 +240,11 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
, names_command = json.get('a_names_command', '')
|
, names_command = json.get('a_names_command', '')
|
||||||
, hand_signal_default_descriptions_command = json.get('a_hand_signal_default_descriptions_command', '')
|
, hand_signal_default_descriptions_command = json.get('a_hand_signal_default_descriptions_command', '')
|
||||||
, notes_command = json.get('a_notes_command', '')
|
, notes_command = json.get('a_notes_command', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -239,12 +254,12 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_form_filters_command(cls, form):
|
def from_form_filters_command(cls, form, id_user_session):
|
||||||
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_command', Filters_Command)
|
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_command', Filters_Command)
|
||||||
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
||||||
has_filter_command_category = not (has_filter_search_text or form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None)
|
has_filter_command_category = not (has_filter_search_text or form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None)
|
||||||
active_only = av.input_bool(form.active_only.data, "active", "Parameters_Command.from_form_filters_command")
|
active_only = av.input_bool(form.active_only.data, "active", "Parameters_Command.from_form_filters_command")
|
||||||
filters = cls.get_default()
|
filters = cls.get_default(id_user_session)
|
||||||
filters.get_all_command_category = not has_filter_command_category
|
filters.get_all_command_category = not has_filter_command_category
|
||||||
filters.get_inactive_command_category = not active_only
|
filters.get_inactive_command_category = not active_only
|
||||||
filters.ids_command_category = form.id_command_category.data if has_filter_command_category else ''
|
filters.ids_command_category = form.id_command_category.data if has_filter_command_category else ''
|
||||||
@@ -256,11 +271,11 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
return filters
|
return filters
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_form_filters_command_category(cls, form):
|
def from_form_filters_command_category(cls, form, id_user_session):
|
||||||
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_command_category', Filters_Command_Category)
|
av.val_instance(form, 'form', 'Parameters_Command.from_form_filters_command_category', Filters_Command_Category)
|
||||||
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
||||||
active_only = av.input_bool(form.active_only.data, "active", "Parameters_Command.from_form_filters_command")
|
active_only = av.input_bool(form.active_only.data, "active", "Parameters_Command.from_form_filters_command")
|
||||||
filters = cls.get_default()
|
filters = cls.get_default(id_user_session)
|
||||||
filters.get_all_command_category = True
|
filters.get_all_command_category = True
|
||||||
filters.get_inactive_command_category = not active_only
|
filters.get_inactive_command_category = not active_only
|
||||||
filters.ids_command_category = ''
|
filters.ids_command_category = ''
|
||||||
@@ -285,6 +300,11 @@ class Parameters_Command(Get_Many_Parameters_Base):
|
|||||||
, 'a_names_command': self.names_command
|
, 'a_names_command': self.names_command
|
||||||
, 'a_hand_signal_default_descriptions_command': self.hand_signal_default_descriptions_command
|
, 'a_hand_signal_default_descriptions_command': self.hand_signal_default_descriptions_command
|
||||||
, 'a_notes_command': self.notes_command
|
, 'a_notes_command': self.notes_command
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -158,18 +158,28 @@ class Parameters_Distraction_Intensity_Level(Get_Many_Parameters_Base):
|
|||||||
get_inactive_distraction_intensity_level: bool
|
get_inactive_distraction_intensity_level: bool
|
||||||
ids_distraction_intensity_level: str
|
ids_distraction_intensity_level: str
|
||||||
names_distraction_intensity_level: str
|
names_distraction_intensity_level: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_distraction_intensity_level = True
|
get_all_distraction_intensity_level = True
|
||||||
, get_inactive_distraction_intensity_level = False
|
, get_inactive_distraction_intensity_level = False
|
||||||
, ids_distraction_intensity_level = ''
|
, ids_distraction_intensity_level = ''
|
||||||
, names_distraction_intensity_level = ''
|
, names_distraction_intensity_level = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -183,6 +193,11 @@ class Parameters_Distraction_Intensity_Level(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_distraction_intensity_level = json.get('a_get_inactive_distraction_intensity_level', False)
|
, get_inactive_distraction_intensity_level = json.get('a_get_inactive_distraction_intensity_level', False)
|
||||||
, ids_distraction_intensity_level = json.get('a_ids_distraction_intensity_level', '')
|
, ids_distraction_intensity_level = json.get('a_ids_distraction_intensity_level', '')
|
||||||
, names_distraction_intensity_level = json.get('a_names_distraction_intensity_level', '')
|
, names_distraction_intensity_level = json.get('a_names_distraction_intensity_level', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -210,6 +225,11 @@ class Parameters_Distraction_Intensity_Level(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_distraction_intensity_level': self.get_inactive_distraction_intensity_level
|
, 'a_get_inactive_distraction_intensity_level': self.get_inactive_distraction_intensity_level
|
||||||
, 'a_ids_distraction_intensity_level': self.ids_distraction_intensity_level
|
, 'a_ids_distraction_intensity_level': self.ids_distraction_intensity_level
|
||||||
, 'a_names_distraction_intensity_level': self.names_distraction_intensity_level
|
, 'a_names_distraction_intensity_level': self.names_distraction_intensity_level
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -122,18 +122,28 @@ class Parameters_Distraction_Type(Get_Many_Parameters_Base):
|
|||||||
get_inactive_distraction_type: bool
|
get_inactive_distraction_type: bool
|
||||||
ids_distraction_type: str
|
ids_distraction_type: str
|
||||||
names_distraction_type: str
|
names_distraction_type: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_distraction_type = True
|
get_all_distraction_type = True
|
||||||
, get_inactive_distraction_type = False
|
, get_inactive_distraction_type = False
|
||||||
, ids_distraction_type = ''
|
, ids_distraction_type = ''
|
||||||
, names_distraction_type = ''
|
, names_distraction_type = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -147,6 +157,11 @@ class Parameters_Distraction_Type(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_distraction_type = json.get('a_get_inactive_distraction_type', False)
|
, get_inactive_distraction_type = json.get('a_get_inactive_distraction_type', False)
|
||||||
, ids_distraction_type = json.get('a_ids_distraction_type', '')
|
, ids_distraction_type = json.get('a_ids_distraction_type', '')
|
||||||
, names_distraction_type = json.get('a_names_distraction_type', '')
|
, names_distraction_type = json.get('a_names_distraction_type', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -174,6 +189,11 @@ class Parameters_Distraction_Type(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_distraction_type': self.get_inactive_distraction_type
|
, 'a_get_inactive_distraction_type': self.get_inactive_distraction_type
|
||||||
, 'a_ids_distraction_type': self.ids_distraction_type
|
, 'a_ids_distraction_type': self.ids_distraction_type
|
||||||
, 'a_names_distraction_type': self.names_distraction_type
|
, 'a_names_distraction_type': self.names_distraction_type
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -145,18 +145,28 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
get_inactive_dog: bool
|
get_inactive_dog: bool
|
||||||
ids_dog: str
|
ids_dog: str
|
||||||
names_dog: str
|
names_dog: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_dog = True
|
get_all_dog = True
|
||||||
, get_inactive_dog = False
|
, get_inactive_dog = False
|
||||||
, ids_dog = ''
|
, ids_dog = ''
|
||||||
, names_dog = ''
|
, names_dog = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -170,6 +180,11 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
, get_inactive_dog = json.get('a_get_inactive_dog', False)
|
||||||
, ids_dog = json.get('a_ids_dog', '')
|
, ids_dog = json.get('a_ids_dog', '')
|
||||||
, names_dog = json.get('names_dog', '')
|
, names_dog = json.get('names_dog', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -177,12 +192,12 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_form_filters_dog(cls, form):
|
def from_form_filters_dog(cls, form, id_user_session):
|
||||||
av.val_instance(form, 'form', 'Parameters_Dog.from_form_filters_dog', Filters_Dog)
|
av.val_instance(form, 'form', 'Parameters_Dog.from_form_filters_dog', Filters_Dog)
|
||||||
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
||||||
has_filter_dog = has_filter_search_text # has_filter_id or has_filter_name
|
has_filter_dog = has_filter_search_text # has_filter_id or has_filter_name
|
||||||
active_only = av.input_bool(form.active_only.data, "active_only", "Parameters_Dog.from_form_filters_dog")
|
active_only = av.input_bool(form.active_only.data, "active_only", "Parameters_Dog.from_form_filters_dog")
|
||||||
filter_parameters = cls.get_default()
|
filter_parameters = cls.get_default(id_user_session)
|
||||||
filter_parameters.get_all_dog = not has_filter_dog
|
filter_parameters.get_all_dog = not has_filter_dog
|
||||||
filter_parameters.get_inactive_dog = not active_only
|
filter_parameters.get_inactive_dog = not active_only
|
||||||
filter_parameters.ids_dog = '' # form.id_dog.data if has_filter_id else ''
|
filter_parameters.ids_dog = '' # form.id_dog.data if has_filter_id else ''
|
||||||
@@ -195,6 +210,11 @@ class Parameters_Dog(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_dog': self.get_inactive_dog
|
, 'a_get_inactive_dog': self.get_inactive_dog
|
||||||
, 'a_ids_dog': self.ids_dog
|
, 'a_ids_dog': self.ids_dog
|
||||||
, 'a_names_dog': self.names_dog
|
, 'a_names_dog': self.names_dog
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -163,13 +163,18 @@ class Parameters_Image(Get_Many_Parameters_Base):
|
|||||||
get_inactive_image: bool
|
get_inactive_image: bool
|
||||||
ids_image: str
|
ids_image: str
|
||||||
names_image: str
|
names_image: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_file_type = True
|
get_all_file_type = True
|
||||||
, get_inactive_file_type = False
|
, get_inactive_file_type = False
|
||||||
@@ -183,6 +188,11 @@ class Parameters_Image(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_image = False
|
, get_inactive_image = False
|
||||||
, ids_image = ''
|
, ids_image = ''
|
||||||
, names_image = ''
|
, names_image = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -204,6 +214,11 @@ class Parameters_Image(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_image = json.get('a_get_inactive_image', False)
|
, get_inactive_image = json.get('a_get_inactive_image', False)
|
||||||
, ids_image = json.get('a_ids_image', '')
|
, ids_image = json.get('a_ids_image', '')
|
||||||
, names_image = json.get('a_names_image', '')
|
, names_image = json.get('a_names_image', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -230,6 +245,11 @@ class Parameters_Image(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_image': self.get_inactive_image
|
, 'a_get_inactive_image': self.get_inactive_image
|
||||||
, 'a_ids_image': self.ids_image
|
, 'a_ids_image': self.ids_image
|
||||||
, 'a_names_image': self.names_image
|
, 'a_names_image': self.names_image
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -158,6 +158,11 @@ class Parameters_Location(Get_Many_Parameters_Base):
|
|||||||
get_inactive_location: bool
|
get_inactive_location: bool
|
||||||
ids_location: str
|
ids_location: str
|
||||||
names_location: str
|
names_location: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
@@ -165,12 +170,17 @@ class Parameters_Location(Get_Many_Parameters_Base):
|
|||||||
output_locations: bool
|
output_locations: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_location = True
|
get_all_location = True
|
||||||
, get_inactive_location = False
|
, get_inactive_location = False
|
||||||
, ids_location = ''
|
, ids_location = ''
|
||||||
, names_location = ''
|
, names_location = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -185,6 +195,11 @@ class Parameters_Location(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_location = json.get('a_get_inactive_location', False)
|
, get_inactive_location = json.get('a_get_inactive_location', False)
|
||||||
, ids_location = json.get('a_ids_location', '')
|
, ids_location = json.get('a_ids_location', '')
|
||||||
, names_location = json.get('a_names_location', '')
|
, names_location = json.get('a_names_location', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -211,6 +226,11 @@ class Parameters_Location(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_location': self.get_inactive_location
|
, 'a_get_inactive_location': self.get_inactive_location
|
||||||
, 'a_ids_location': self.ids_location
|
, 'a_ids_location': self.ids_location
|
||||||
, 'a_names_location': self.names_location
|
, 'a_names_location': self.names_location
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -118,18 +118,28 @@ class Parameters_Obedience_Level(Get_Many_Parameters_Base):
|
|||||||
get_inactive_obedience_level: bool
|
get_inactive_obedience_level: bool
|
||||||
ids_obedience_level: str
|
ids_obedience_level: str
|
||||||
names_obedience_level: str
|
names_obedience_level: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_obedience_level = True
|
get_all_obedience_level = True
|
||||||
, get_inactive_obedience_level = False
|
, get_inactive_obedience_level = False
|
||||||
, ids_obedience_level = ''
|
, ids_obedience_level = ''
|
||||||
, names_obedience_level = ''
|
, names_obedience_level = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -143,6 +153,11 @@ class Parameters_Obedience_Level(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_obedience_level = json.get('a_get_inactive_obedience_level', False)
|
, get_inactive_obedience_level = json.get('a_get_inactive_obedience_level', False)
|
||||||
, ids_obedience_level = json.get('a_ids_obedience_level', '')
|
, ids_obedience_level = json.get('a_ids_obedience_level', '')
|
||||||
, names_obedience_level = json.get('a_names_obedience_level', '')
|
, names_obedience_level = json.get('a_names_obedience_level', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -170,6 +185,11 @@ class Parameters_Obedience_Level(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_obedience_level': self.get_inactive_obedience_level
|
, 'a_get_inactive_obedience_level': self.get_inactive_obedience_level
|
||||||
, 'a_ids_obedience_level': self.ids_obedience_level
|
, 'a_ids_obedience_level': self.ids_obedience_level
|
||||||
, 'a_names_obedience_level': self.names_obedience_level
|
, 'a_names_obedience_level': self.names_obedience_level
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -144,18 +144,28 @@ class Parameters_Response_Quality_Metric(Get_Many_Parameters_Base):
|
|||||||
get_inactive_response_quality_metric: bool
|
get_inactive_response_quality_metric: bool
|
||||||
ids_response_quality_metric: str
|
ids_response_quality_metric: str
|
||||||
names_response_quality_metric: str
|
names_response_quality_metric: str
|
||||||
|
get_all_user: bool
|
||||||
|
get_inactive_user: bool
|
||||||
|
ids_user: str
|
||||||
|
names_user: str
|
||||||
|
emails_user: str
|
||||||
require_all_id_search_filters_met: bool
|
require_all_id_search_filters_met: bool
|
||||||
require_any_id_search_filters_met: bool
|
require_any_id_search_filters_met: bool
|
||||||
require_all_non_id_search_filters_met: bool
|
require_all_non_id_search_filters_met: bool
|
||||||
require_any_non_id_search_filters_met: bool
|
require_any_non_id_search_filters_met: bool
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_default(cls):
|
def get_default(cls, id_user_session):
|
||||||
return cls(
|
return cls(
|
||||||
get_all_response_quality_metric = True
|
get_all_response_quality_metric = True
|
||||||
, get_inactive_response_quality_metric = False
|
, get_inactive_response_quality_metric = False
|
||||||
, ids_response_quality_metric = ''
|
, ids_response_quality_metric = ''
|
||||||
, names_response_quality_metric = ''
|
, names_response_quality_metric = ''
|
||||||
|
, get_all_user = False
|
||||||
|
, get_inactive_user = False
|
||||||
|
, ids_user = str(id_user_session)
|
||||||
|
, names_user = ''
|
||||||
|
, emails_user = ''
|
||||||
, require_all_id_search_filters_met = True
|
, require_all_id_search_filters_met = True
|
||||||
, require_any_id_search_filters_met = True
|
, require_any_id_search_filters_met = True
|
||||||
, require_all_non_id_search_filters_met = False
|
, require_all_non_id_search_filters_met = False
|
||||||
@@ -169,6 +179,11 @@ class Parameters_Response_Quality_Metric(Get_Many_Parameters_Base):
|
|||||||
, get_inactive_response_quality_metric = json.get('a_get_inactive_response_quality_metric', False)
|
, get_inactive_response_quality_metric = json.get('a_get_inactive_response_quality_metric', False)
|
||||||
, ids_response_quality_metric = json.get('a_ids_response_quality_metric', '')
|
, ids_response_quality_metric = json.get('a_ids_response_quality_metric', '')
|
||||||
, names_response_quality_metric = json.get('a_names_response_quality_metric', '')
|
, names_response_quality_metric = json.get('a_names_response_quality_metric', '')
|
||||||
|
, get_all_user = json.get('a_get_all_user', False)
|
||||||
|
, get_inactive_user = json.get('a_get_inactive_user', False)
|
||||||
|
, ids_user = json.get('a_ids_user', '')
|
||||||
|
, names_user = json.get('a_names_user', '')
|
||||||
|
, emails_user = json.get('a_emails_user', '')
|
||||||
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
|
||||||
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
|
||||||
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
|
||||||
@@ -196,6 +211,11 @@ class Parameters_Response_Quality_Metric(Get_Many_Parameters_Base):
|
|||||||
, 'a_get_inactive_response_quality_metric': self.get_inactive_response_quality_metric
|
, 'a_get_inactive_response_quality_metric': self.get_inactive_response_quality_metric
|
||||||
, 'a_ids_response_quality_metric': self.ids_response_quality_metric
|
, 'a_ids_response_quality_metric': self.ids_response_quality_metric
|
||||||
, 'a_names_response_quality_metric': self.names_response_quality_metric
|
, 'a_names_response_quality_metric': self.names_response_quality_metric
|
||||||
|
, 'a_get_all_user': self.get_all_user
|
||||||
|
, 'a_get_inactive_user': self.get_inactive_user
|
||||||
|
, 'a_ids_user': self.ids_user
|
||||||
|
, '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_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_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
|
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -59,6 +59,17 @@ def blog_article_how_to_scale_your_dog_training_business_from_solo_to_multi_trai
|
|||||||
return jsonify(error=str(e)), 403
|
return jsonify(error=str(e)), 403
|
||||||
return html_body
|
return html_body
|
||||||
|
|
||||||
|
@routes_blog.route(Model_View_Blog_Home.HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR, methods=['GET'])
|
||||||
|
def blog_article_the_hidden_costs_of_spreadsheet_dog_training_why_uk_trainers_are_losing_2000_plus_pounds_per_year():
|
||||||
|
try:
|
||||||
|
form = Form_Newsletter()
|
||||||
|
model = Model_View_Blog_Home(form_newsletter = form, hash_page_current = Model_View_Blog_Home.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS)
|
||||||
|
model._title = 'Blog Article'
|
||||||
|
html_body = render_template('pages/blog/_article_the_hidden_costs_of_spreadsheet_dog_training_why_uk_trainers_are_losing_2000_plus_pounds_per_year.html', model = model)
|
||||||
|
except Exception as e:
|
||||||
|
return jsonify(error=str(e)), 403
|
||||||
|
return html_body
|
||||||
|
|
||||||
@routes_blog.route(Model_View_Blog_Home.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS, methods=['GET'])
|
@routes_blog.route(Model_View_Blog_Home.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS, methods=['GET'])
|
||||||
def blog_article_the_science_behind_dog_training_assessments_how_to_track_real_progress():
|
def blog_article_the_science_behind_dog_training_assessments_how_to_track_real_progress():
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -277,6 +277,7 @@ class Model_View_Base(BaseModel, ABC):
|
|||||||
HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = '/apply-founding-partner-success'#
|
HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS: ClassVar[str] = '/apply-founding-partner-success'#
|
||||||
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-25-to-100-plus-clients'
|
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-25-to-100-plus-clients'
|
||||||
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-solo-to-multi-trainer-success'
|
HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS: ClassVar[str] = '/blog/article/how-to-scale-your-dog-training-business-from-solo-to-multi-trainer-success'
|
||||||
|
HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR: ClassVar[str] = '/blog/article/the-hidden-costs-of-spreadsheet-dog-training-why-uk-trainers-are-losing-2000-plus-pounds-per-year'
|
||||||
HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS: ClassVar[str] = '/blog/article/the-science-behind-dog-training-assessments-how-to-track-real-progress'
|
HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS: ClassVar[str] = '/blog/article/the-science-behind-dog-training-assessments-how-to-track-real-progress'
|
||||||
HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025: ClassVar[str] = '/blog/article/why-every-professional-trainer-needs-a-command-dictionary-in-2025'
|
HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025: ClassVar[str] = '/blog/article/why-every-professional-trainer-needs-a-command-dictionary-in-2025'
|
||||||
HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH: ClassVar[str] = '/blog/category/marketing-and-growth'
|
HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH: ClassVar[str] = '/blog/category/marketing-and-growth'
|
||||||
|
|||||||
@@ -88,6 +88,8 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
|||||||
self.form_filters = form_filters_old
|
self.form_filters = form_filters_old
|
||||||
datastore_dog = DataStore_Dog()
|
datastore_dog = DataStore_Dog()
|
||||||
datastore_user = DataStore_User()
|
datastore_user = DataStore_User()
|
||||||
|
|
||||||
|
user_session = datastore_dog.get_user_session()
|
||||||
|
|
||||||
# Assessments + filters
|
# Assessments + filters
|
||||||
parameters_filter_lighting_level = Parameters_Lighting_Level.get_default()
|
parameters_filter_lighting_level = Parameters_Lighting_Level.get_default()
|
||||||
@@ -95,7 +97,7 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
|||||||
if len(self.filter_lighting_levels) > 0:
|
if len(self.filter_lighting_levels) > 0:
|
||||||
self.form_filters.id_lighting_level.choices += [(str(lighting_level.id_lighting_level), lighting_level.name) for lighting_level in self.filter_lighting_levels]
|
self.form_filters.id_lighting_level.choices += [(str(lighting_level.id_lighting_level), lighting_level.name) for lighting_level in self.filter_lighting_levels]
|
||||||
|
|
||||||
parameters_filter_location = Parameters_Location.get_default()
|
parameters_filter_location = Parameters_Location.get_default(user_session.id_user)
|
||||||
self.filter_locations, errors = datastore_dog.get_many_location(parameters_filter_location)
|
self.filter_locations, errors = datastore_dog.get_many_location(parameters_filter_location)
|
||||||
if len(self.filter_locations) > 0:
|
if len(self.filter_locations) > 0:
|
||||||
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
|
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
|
||||||
@@ -120,14 +122,14 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
|||||||
self.assessments, errors = datastore_dog.get_many_assessment(parameters_filter_assessment)
|
self.assessments, errors = datastore_dog.get_many_assessment(parameters_filter_assessment)
|
||||||
|
|
||||||
# Distractions + filters
|
# Distractions + filters
|
||||||
parameters_filter_distraction_type = Parameters_Distraction_Type.get_default()
|
parameters_filter_distraction_type = Parameters_Distraction_Type.get_default(user_session.id_user)
|
||||||
self.filter_distraction_types, errors = datastore_dog.get_many_distraction_type(parameters_filter_distraction_type)
|
self.filter_distraction_types, errors = datastore_dog.get_many_distraction_type(parameters_filter_distraction_type)
|
||||||
"""
|
"""
|
||||||
if len(self.filter_distraction_types) > 0:
|
if len(self.filter_distraction_types) > 0:
|
||||||
self.form_filters.id_distraction_type.choices += [(str(distraction_type.id_type), distraction_type.name) for distraction_type in self.filter_distraction_types]
|
self.form_filters.id_distraction_type.choices += [(str(distraction_type.id_type), distraction_type.name) for distraction_type in self.filter_distraction_types]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameters_filter_distraction_intensity_level = Parameters_Distraction_Intensity_Level.get_default()
|
parameters_filter_distraction_intensity_level = Parameters_Distraction_Intensity_Level.get_default(user_session.id_user)
|
||||||
self.filter_distraction_intensity_levels, errors = datastore_dog.get_many_distraction_intensity_level(parameters_filter_distraction_intensity_level)
|
self.filter_distraction_intensity_levels, errors = datastore_dog.get_many_distraction_intensity_level(parameters_filter_distraction_intensity_level)
|
||||||
"""
|
"""
|
||||||
if len(self.filter_distraction_intensity_levels) > 0:
|
if len(self.filter_distraction_intensity_levels) > 0:
|
||||||
@@ -138,7 +140,7 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
|||||||
distractions, errors = datastore_dog.get_many_distraction(parameters_filter_distraction)
|
distractions, errors = datastore_dog.get_many_distraction(parameters_filter_distraction)
|
||||||
|
|
||||||
# Assessment Command Modality Links + filters
|
# Assessment Command Modality Links + filters
|
||||||
parameters_filter_command = Parameters_Command.get_default()
|
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
|
||||||
self.filter_command_categories, self.filter_commands, errors = datastore_dog.get_many_command(parameters_filter_command)
|
self.filter_command_categories, self.filter_commands, errors = datastore_dog.get_many_command(parameters_filter_command)
|
||||||
"""
|
"""
|
||||||
if len(self.filter_command_categories) > 0:
|
if len(self.filter_command_categories) > 0:
|
||||||
@@ -169,14 +171,14 @@ class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
|||||||
assessment_command_modality_links, errors = datastore_dog.get_many_assessment_command_modality_link(parameters_filter_assessment_command_modality_link)
|
assessment_command_modality_links, errors = datastore_dog.get_many_assessment_command_modality_link(parameters_filter_assessment_command_modality_link)
|
||||||
|
|
||||||
# Assessment Responses and filters
|
# Assessment Responses and filters
|
||||||
parameters_filter_response_quality_metric = Parameters_Response_Quality_Metric.get_default()
|
parameters_filter_response_quality_metric = Parameters_Response_Quality_Metric.get_default(user_session.id_user)
|
||||||
self.filter_response_quality_metrics, errors = datastore_dog.get_many_response_quality_metric(parameters_filter_response_quality_metric)
|
self.filter_response_quality_metrics, errors = datastore_dog.get_many_response_quality_metric(parameters_filter_response_quality_metric)
|
||||||
"""
|
"""
|
||||||
if len(self.filter_response_quality_metrics) > 0:
|
if len(self.filter_response_quality_metrics) > 0:
|
||||||
self.form_filters.id_response_quality_metric.choices += [(str(response_quality_metric.id_response_quality_metric), response_quality_metric.name) for response_quality_metric in self.filter_response_quality_metrics]
|
self.form_filters.id_response_quality_metric.choices += [(str(response_quality_metric.id_response_quality_metric), response_quality_metric.name) for response_quality_metric in self.filter_response_quality_metrics]
|
||||||
"""
|
"""
|
||||||
|
|
||||||
parameters_filter_obedience_level = Parameters_Obedience_Level.get_default()
|
parameters_filter_obedience_level = Parameters_Obedience_Level.get_default(user_session.id_user)
|
||||||
self.filter_obedience_levels, errors = datastore_dog.get_many_obedience_level(parameters_filter_obedience_level)
|
self.filter_obedience_levels, errors = datastore_dog.get_many_obedience_level(parameters_filter_obedience_level)
|
||||||
"""
|
"""
|
||||||
if len(self.filter_obedience_levels) > 0:
|
if len(self.filter_obedience_levels) > 0:
|
||||||
|
|||||||
@@ -38,8 +38,10 @@ class Model_View_Dog_Command(Model_View_Dog_Base):
|
|||||||
self._title = 'Command'
|
self._title = 'Command'
|
||||||
self.form_filters = form_filters_old
|
self.form_filters = form_filters_old
|
||||||
datastore = DataStore_Dog()
|
datastore = DataStore_Dog()
|
||||||
|
|
||||||
|
user_session = datastore.get_user_session()
|
||||||
|
|
||||||
parameters_filter_command = Parameters_Command.get_default()
|
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
|
||||||
self.filter_command_categories, filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
self.filter_command_categories, filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||||
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||||
|
|
||||||
|
|||||||
@@ -49,8 +49,10 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
|
|||||||
self._title = 'Command Button Link'
|
self._title = 'Command Button Link'
|
||||||
self.form_filters = form_filters_old
|
self.form_filters = form_filters_old
|
||||||
datastore = DataStore_Dog()
|
datastore = DataStore_Dog()
|
||||||
|
|
||||||
|
user_session = datastore.get_user_session()
|
||||||
|
|
||||||
parameters_filter_command = Parameters_Command.get_default()
|
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
|
||||||
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||||
if len(self.filter_command_categories) > 0:
|
if len(self.filter_command_categories) > 0:
|
||||||
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||||
@@ -61,7 +63,7 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
|
|||||||
Helper_App.console_log(f'sorted filter commands: {sorted_filter_commands}')
|
Helper_App.console_log(f'sorted filter commands: {sorted_filter_commands}')
|
||||||
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in sorted_filter_commands] # .sort(key = lambda command: command[1])
|
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in sorted_filter_commands] # .sort(key = lambda command: command[1])
|
||||||
|
|
||||||
parameters_filter_button_shape = Parameters_Button_Shape.get_default()
|
parameters_filter_button_shape = Parameters_Button_Shape.get_default(user_session.id_user)
|
||||||
self.filter_button_shapes, errors = datastore.get_many_button_shape(parameters_filter_button_shape)
|
self.filter_button_shapes, errors = datastore.get_many_button_shape(parameters_filter_button_shape)
|
||||||
if len(self.filter_button_shapes) > 0:
|
if len(self.filter_button_shapes) > 0:
|
||||||
self.form_filters.id_button_shape.choices += [(str(button_shape.id_button_shape), button_shape.name) for button_shape in self.filter_button_shapes]
|
self.form_filters.id_button_shape.choices += [(str(button_shape.id_button_shape), button_shape.name) for button_shape in self.filter_button_shapes]
|
||||||
@@ -76,7 +78,7 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
|
|||||||
if len(self.filter_button_icons) > 0:
|
if len(self.filter_button_icons) > 0:
|
||||||
self.form_filters.id_button_icon.choices += [(str(button_icon.id_button_icon), button_icon.name) for button_icon in self.filter_button_icons]
|
self.form_filters.id_button_icon.choices += [(str(button_icon.id_button_icon), button_icon.name) for button_icon in self.filter_button_icons]
|
||||||
|
|
||||||
parameters_filter_location = Parameters_Location.get_default()
|
parameters_filter_location = Parameters_Location.get_default(user_session.id_user)
|
||||||
self.filter_locations, errors = datastore.get_many_location(parameters_filter_location)
|
self.filter_locations, errors = datastore.get_many_location(parameters_filter_location)
|
||||||
if len(self.filter_locations) > 0:
|
if len(self.filter_locations) > 0:
|
||||||
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
|
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
|
||||||
|
|||||||
@@ -43,12 +43,13 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
|||||||
self._title = 'Dog Command Link'
|
self._title = 'Dog Command Link'
|
||||||
self.form_filters = form_filters_old
|
self.form_filters = form_filters_old
|
||||||
datastore = DataStore_Dog()
|
datastore = DataStore_Dog()
|
||||||
parameters_filter_dog = Parameters_Dog.get_default()
|
user_session = datastore.get_user_session()
|
||||||
|
parameters_filter_dog = Parameters_Dog.get_default(user_session.id_user)
|
||||||
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
|
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
|
||||||
if len(self.filter_dogs) > 0:
|
if len(self.filter_dogs) > 0:
|
||||||
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
|
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
|
||||||
|
|
||||||
parameters_filter_command = Parameters_Command.get_default()
|
parameters_filter_command = Parameters_Command.get_default(user_session.id_user)
|
||||||
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||||
if len(self.filter_command_categories) > 0:
|
if len(self.filter_command_categories) > 0:
|
||||||
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||||
|
|||||||
@@ -1,16 +1,15 @@
|
|||||||
|
|
||||||
USE demo;
|
USE demo;
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS demo.p_dog_calc_dog;
|
DROP PROCEDURE IF EXISTS demo.p_dog_get_many_obedience_level;
|
||||||
|
|
||||||
DELIMITER //
|
DELIMITER //
|
||||||
CREATE PROCEDURE demo.p_dog_calc_dog (
|
CREATE PROCEDURE demo.p_dog_get_many_obedience_level (
|
||||||
IN a_guid BINARY(36)
|
IN a_id_user INT
|
||||||
, IN a_id_user INT
|
, IN a_get_all_obedience_level BIT
|
||||||
, IN a_get_all_dog BIT
|
, IN a_get_inactive_obedience_level BIT
|
||||||
, IN a_get_inactive_dog BIT
|
, IN a_ids_obedience_level TEXT
|
||||||
, IN a_ids_dog TEXT
|
, IN a_names_obedience_level TEXT
|
||||||
, IN a_names_dog TEXT
|
|
||||||
, IN a_get_all_user BIT
|
, IN a_get_all_user BIT
|
||||||
, IN a_get_inactive_user BIT
|
, IN a_get_inactive_user BIT
|
||||||
, IN a_ids_user TEXT
|
, IN a_ids_user TEXT
|
||||||
@@ -20,23 +19,16 @@ CREATE PROCEDURE demo.p_dog_calc_dog (
|
|||||||
, IN a_require_any_id_search_filters_met BIT
|
, IN a_require_any_id_search_filters_met BIT
|
||||||
, IN a_require_all_non_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_require_any_non_id_search_filters_met BIT
|
||||||
, IN a_show_errors BIT
|
|
||||||
, IN a_debug BIT
|
, IN a_debug BIT
|
||||||
)
|
)
|
||||||
BEGIN
|
BEGIN
|
||||||
DECLARE v_can_view BIT;
|
DECLARE v_can_view BIT;
|
||||||
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
DECLARE v_code_type_error_bad_data VARCHAR(100);
|
||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_has_filter_dog_id BIT;
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_has_filter_dog_name BIT;
|
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
|
||||||
DECLARE v_id_permission_dog_view INT;
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_is_super_user BIT;
|
|
||||||
DECLARE v_priority_access_level_none INT;
|
|
||||||
DECLARE v_priority_access_level_view INT;
|
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -49,14 +41,14 @@ BEGIN
|
|||||||
|
|
||||||
ROLLBACK;
|
ROLLBACK;
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT
|
, id_type INT
|
||||||
, code VARCHAR(250) NOT NULL
|
, code VARCHAR(250) NOT NULL
|
||||||
, msg TEXT NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
INSERT INTO tmp_Msg_Error (
|
||||||
id_type
|
id_type
|
||||||
, code
|
, code
|
||||||
, msg
|
, msg
|
||||||
@@ -79,706 +71,204 @@ BEGIN
|
|||||||
, ERROR_TYPE.background_colour
|
, ERROR_TYPE.background_colour
|
||||||
, ERROR_TYPE.text_colour
|
, ERROR_TYPE.text_colour
|
||||||
, t_ERROR.msg
|
, t_ERROR.msg
|
||||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
FROM tmp_Msg_Error t_ERROR
|
||||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
;
|
;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
DROP TABLE IF EXISTS tmp_Msg_Error;
|
||||||
END;
|
END;
|
||||||
|
|
||||||
SET v_time_start := CURRENT_TIMESTAMP(6);
|
SET v_time_start := CURRENT_TIMESTAMP(6);
|
||||||
|
SET v_guid := UUID();
|
||||||
SET v_code_type_error_bad_data := 'BAD_DATA';
|
SET v_code_type_error_bad_data := 'BAD_DATA';
|
||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
|
||||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
|
||||||
|
|
||||||
CALL demo.p_core_validate_guid ( a_guid );
|
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
SET a_get_all_dog := IFNULL(a_get_all_dog, 0);
|
/*
|
||||||
SET a_get_inactive_dog := IFNULL(a_get_inactive_dog, 0);
|
SET a_get_all_obedience_level := IFNULL(a_get_all_obedience_level, 0);
|
||||||
SET a_ids_dog := TRIM(IFNULL(a_ids_dog, ''));
|
SET a_get_inactive_obedience_level := IFNULL(a_get_inactive_obedience_level, 0);
|
||||||
SET a_names_dog := TRIM(IFNULL(a_names_dog, ''));
|
SET a_ids_obedience_level := TRIM(IFNULL(a_ids_obedience_level, ''));
|
||||||
-- USER filters handled by p_dog_calc_user_access
|
SET a_names_obedience_level := TRIM(IFNULL(a_names_obedience_level, ''));
|
||||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
SET a_require_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_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
||||||
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
||||||
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
||||||
SET a_show_errors := IFNULL(a_show_errors, 0);
|
*/
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_id_user
|
||||||
, a_id_user
|
, a_get_all_obedience_level
|
||||||
, a_get_all_dog
|
, a_get_inactive_obedience_level
|
||||||
, a_get_inactive_dog
|
, a_ids_obedience_level
|
||||||
, a_ids_dog
|
, a_names_obedience_level
|
||||||
, a_names_dog
|
|
||||||
, a_get_all_user
|
|
||||||
, a_get_inactive_user
|
|
||||||
, a_ids_user
|
|
||||||
, a_names_user
|
|
||||||
, a_emails_user
|
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
, a_require_any_non_id_search_filters_met
|
, a_require_any_non_id_search_filters_met
|
||||||
, a_show_errors
|
|
||||||
, a_debug
|
, a_debug
|
||||||
;
|
;
|
||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
, v_id_permission_dog_view
|
, v_guid
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Dog (
|
CREATE TEMPORARY TABLE tmp_Obedience_Level (
|
||||||
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
id_obedience_level INT NOT NULL
|
||||||
, id_user INT
|
, code VARCHAR(250)
|
||||||
, id_role INT
|
, name VARCHAR(250)
|
||||||
, id_permission_required INT NOT NULL
|
|
||||||
, priority_access_level_required INT NOT NULL
|
|
||||||
, is_super_user BIT
|
|
||||||
, priority_access_level_user INT
|
|
||||||
, has_access BIT
|
|
||||||
, can_view BIT
|
|
||||||
, can_edit BIT
|
|
||||||
, can_admin BIT
|
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
, does_meet_id_filters BIT
|
, does_meet_id_filters BIT
|
||||||
, does_meet_non_id_filters BIT
|
, does_meet_non_id_filters BIT
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Dog_Calc_Dog (
|
|
||||||
id_dog INT NOT NULL
|
|
||||||
, exists_valid_link BIT NOT NULL
|
|
||||||
, id_user INT
|
|
||||||
, does_meet_id_filters BIT NOT NULL
|
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog (
|
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error (
|
||||||
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT
|
||||||
, id_type INT
|
, id_type INT
|
||||||
, code VARCHAR(250) NOT NULL
|
, code VARCHAR(250) NOT NULL
|
||||||
, msg TEXT NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog (
|
|
||||||
substring VARCHAR(4000) NOT NULL
|
|
||||||
, as_int INT
|
|
||||||
);
|
|
||||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog (
|
|
||||||
substring VARCHAR(4000) NOT NULL
|
|
||||||
, as_int INT
|
|
||||||
);
|
|
||||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
|
||||||
|
|
||||||
SET v_has_filter_dog_id = CASE WHEN a_ids_dog <> '' THEN 1 ELSE 0 END;
|
|
||||||
SET v_has_filter_dog_name = CASE WHEN a_names_dog <> '' THEN 1 ELSE 0 END;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL demo.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
);
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
, IFNULL(CALC_USER_T.is_super_user, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
, v_is_super_user
|
|
||||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.guid = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
v_can_view
|
|
||||||
, v_is_super_user
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
-- Call Obedience_Level Calc
|
||||||
DELETE t_ME
|
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
|
||||||
FROM tmp_Msg_Error_Calc_Dog t_ME
|
IF a_debug = 1 THEN
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
SELECT
|
||||||
;
|
v_guid -- a_guid
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
, a_id_user -- a_id_user
|
||||||
id_type
|
, a_get_all_obedience_level -- a_get_all_obedience_level
|
||||||
, code
|
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||||
, msg
|
, a_ids_obedience_level -- a_ids_obedience_level
|
||||||
)
|
, a_names_obedience_level -- a_names_obedience_level
|
||||||
VALUES (
|
, a_get_all_user
|
||||||
v_id_type_error_no_permission
|
, a_get_inactive_user
|
||||||
, v_code_type_error_no_permission
|
, a_ids_user
|
||||||
, 'You do not have permission to view Dog.'
|
, a_names_user
|
||||||
)
|
, a_emails_user
|
||||||
;
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
END IF;
|
, 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
|
||||||
CALL demo.p_dog_clear_calc_user_access(
|
, a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met
|
||||||
a_guid
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
);
|
;
|
||||||
|
END IF;
|
||||||
-- Users
|
|
||||||
IF a_debug = 1 THEN
|
CALL demo.p_dog_calc_obedience_level (
|
||||||
SELECT
|
v_guid -- a_guid
|
||||||
a_guid -- guid
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_user -- get_all_user
|
, a_get_all_obedience_level -- a_get_all_obedience_level
|
||||||
, a_get_inactive_user -- get_inactive_user
|
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||||
, a_ids_user -- ids_user
|
, a_ids_obedience_level -- a_ids_obedience_level
|
||||||
, '' -- a_auth0_ids_user
|
, a_names_obedience_level -- a_names_obedience_level
|
||||||
, a_names_user -- a_names_user
|
, a_get_all_user
|
||||||
, a_emails_user -- a_emails_user
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
, a_require_any_non_id_search_filters_met -- 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_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
;
|
);
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL demo.p_dog_calc_user_access(
|
|
||||||
a_guid-- guid
|
|
||||||
, a_get_all_user -- get_all_user
|
|
||||||
, a_get_inactive_user -- get_inactive_user
|
|
||||||
, a_ids_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, a_names_user -- a_names_user
|
|
||||||
, a_emails_user -- a_emails_user
|
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
|
||||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
INSERT INTO tmp_Calc_User_Access_Calc_Dog (
|
|
||||||
id_user
|
|
||||||
, id_role
|
|
||||||
, id_permission_required
|
|
||||||
, priority_access_level_required
|
|
||||||
, is_super_user
|
|
||||||
, priority_access_level_user
|
|
||||||
, has_access
|
|
||||||
, can_view
|
|
||||||
, can_edit
|
|
||||||
, can_admin
|
|
||||||
, active
|
|
||||||
, does_meet_id_filters
|
|
||||||
, does_meet_non_id_filters
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
CALC_USER_T.id_user
|
|
||||||
, CALC_USER_T.id_role
|
|
||||||
, CALC_USER_T.id_permission_required
|
|
||||||
, CALC_USER_T.priority_access_level_required
|
|
||||||
, CALC_USER_T.is_super_user
|
|
||||||
, CALC_USER_T.priority_access_level_user
|
|
||||||
, CALC_USER_T.has_access
|
|
||||||
, CALC_USER_T.can_view
|
|
||||||
, CALC_USER_T.can_edit
|
|
||||||
, CALC_USER_T.can_admin
|
|
||||||
, CALC_USER_T.active
|
|
||||||
, CALC_USER_T.does_meet_id_filters
|
|
||||||
, CALC_USER_T.does_meet_non_id_filters
|
|
||||||
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'After get many user';
|
|
||||||
SELECT * FROM tmp_Calc_User_Access_Calc_Dog;
|
|
||||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Dog t_ERROR;
|
|
||||||
SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL demo.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Dogs
|
|
||||||
IF v_has_filter_dog_id = 1 THEN
|
|
||||||
CALL demo.p_core_split(a_guid, a_ids_dog, ',', a_debug);
|
|
||||||
|
|
||||||
SET sql_mode = '';
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT *
|
SELECT COUNT(*) FROM demo.DOG_Obedience_Level_Temp;
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
SELECT * FROM demo.DOG_Obedience_Level_Temp;
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
SELECT COUNT(*) AS count_split_ids
|
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Split_Id_Calc_Dog (
|
INSERT INTO tmp_Obedience_Level (
|
||||||
substring
|
id_obedience_level
|
||||||
, as_int
|
, code
|
||||||
)
|
, name
|
||||||
SELECT
|
, active
|
||||||
SPLIT_T.substring
|
|
||||||
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
|
|
||||||
CALL demo.p_core_clear_split( a_guid );
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF v_has_filter_dog_name = 1 THEN
|
, does_meet_id_filters
|
||||||
CALL demo.p_core_split(a_guid, a_names_dog, ',', a_debug);
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
SET sql_mode = '';
|
SELECT
|
||||||
|
OBEDIENCE_LEVEL_T.id_obedience_level
|
||||||
|
, OBEDIENCE_LEVEL_T.code
|
||||||
|
, OBEDIENCE_LEVEL_T.name
|
||||||
|
, OBEDIENCE_LEVEL_T.active
|
||||||
|
|
||||||
|
, OBEDIENCE_LEVEL_T.does_meet_id_filters
|
||||||
|
, OBEDIENCE_LEVEL_T.does_meet_non_id_filters
|
||||||
|
FROM demo.DOG_Obedience_Level_Temp OBEDIENCE_LEVEL_T
|
||||||
|
WHERE OBEDIENCE_LEVEL_T.GUID = v_guid
|
||||||
|
;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT *
|
SELECT COUNT(*) FROM tmp_Obedience_Level;
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
SELECT * FROM tmp_Obedience_Level;
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
SELECT COUNT(*) AS count_split_names
|
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
INSERT INTO tmp_Split_Name_Calc_Dog (
|
|
||||||
substring
|
|
||||||
, as_int
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
SPLIT_T.substring
|
|
||||||
, CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int
|
|
||||||
FROM demo.CORE_Split_Temp SPLIT_T
|
|
||||||
WHERE
|
|
||||||
SPLIT_T.GUID = a_guid
|
|
||||||
AND IFNULL(SPLIT_T.substring, '') <> ''
|
|
||||||
;
|
|
||||||
|
|
||||||
CALL demo.p_core_clear_split( a_guid );
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT *
|
|
||||||
FROM tmp_Split_Id_Calc_Dog
|
|
||||||
;
|
|
||||||
SELECT *
|
|
||||||
FROM tmp_Split_Name_Calc_Dog
|
|
||||||
;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
-- Filter outputs
|
||||||
IF EXISTS (
|
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
|
||||||
SELECT *
|
|
||||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
|
||||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
|
||||||
WHERE
|
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
|
||||||
OR ISNULL(DOG.id_dog)
|
|
||||||
OR (
|
|
||||||
DOG.active = 0
|
|
||||||
AND a_get_inactive_dog = 0
|
|
||||||
)
|
|
||||||
) THEN
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Dog (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
v_id_type_error_bad_data
|
|
||||||
, v_code_type_error_bad_data
|
|
||||||
, CONCAT('Invalid or inactive Dog IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
|
||||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
|
||||||
LEFT JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
|
||||||
WHERE
|
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
|
||||||
OR ISNULL(DOG.id_dog)
|
|
||||||
OR (
|
|
||||||
DOG.active = 0
|
|
||||||
AND a_get_inactive_dog = 0
|
|
||||||
)
|
|
||||||
;
|
|
||||||
/* Don't error on names not found
|
|
||||||
ELSEIF EXISTS ()
|
|
||||||
*/
|
|
||||||
ELSE
|
|
||||||
INSERT INTO tmp_Dog_Calc_Dog (
|
|
||||||
id_dog
|
|
||||||
, exists_valid_link
|
|
||||||
, id_user
|
|
||||||
, does_meet_id_filters
|
|
||||||
, does_meet_non_id_filters
|
|
||||||
)
|
|
||||||
WITH
|
|
||||||
Dog_Id_Filter AS (
|
|
||||||
SELECT DOG.id_dog
|
|
||||||
FROM tmp_Split_Id_Calc_Dog t_SPLIT_ID
|
|
||||||
INNER JOIN demo.DOG_Dog DOG ON t_SPLIT_ID.as_int = DOG.id_dog
|
|
||||||
)
|
|
||||||
, Dog_Name_Filter AS (
|
|
||||||
SELECT DOG.id_dog
|
|
||||||
FROM tmp_Split_Name_Calc_Dog t_SPLIT_NAME
|
|
||||||
INNER JOIN demo.DOG_Dog DOG ON DOG.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
|
||||||
WHERE IFNULL(t_SPLIT_NAME.substring, '') <> ''
|
|
||||||
)
|
|
||||||
, Dog_Filters AS (
|
|
||||||
SELECT
|
|
||||||
DOG_COMBINED.id_dog
|
|
||||||
, MAX(DOG_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
|
||||||
, MAX(DOG_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
DOG_ID_FILTER.id_dog
|
|
||||||
, 1 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
FROM Dog_Id_Filter DOG_ID_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
DOG_NAME_FILTER.id_dog
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 1 AS does_meet_name_filter
|
|
||||||
FROM Dog_Name_Filter DOG_NAME_FILTER
|
|
||||||
) DOG_COMBINED
|
|
||||||
GROUP BY DOG_COMBINED.id_dog
|
|
||||||
)
|
|
||||||
, Dog_Access AS (
|
|
||||||
SELECT
|
|
||||||
DOG.id_dog
|
|
||||||
, CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END AS exists_valid_link
|
|
||||||
, ROW_NUMBER() OVER (
|
|
||||||
PARTITION BY DOG.id_dog
|
|
||||||
ORDER BY
|
|
||||||
CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END DESC
|
|
||||||
, t_USER.does_meet_id_filters DESC
|
|
||||||
, t_USER.does_meet_non_id_filters DESC
|
|
||||||
) AS index_link_in_dog
|
|
||||||
, t_USER.id_user
|
|
||||||
FROM demo.DOG_Dog DOG
|
|
||||||
LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK
|
|
||||||
ON DOG.id_dog = DOG_USER_LINK.id_dog
|
|
||||||
AND (
|
|
||||||
(
|
|
||||||
a_get_inactive_dog = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR DOG_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER
|
|
||||||
ON DOG_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN demo.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
DOG.id_dog
|
|
||||||
, IFNULL(DOG_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
|
||||||
, DOG_ACCESS.id_user
|
|
||||||
, CASE WHEN
|
|
||||||
v_has_filter_dog_id = 0
|
|
||||||
OR IFNULL(DOG_FILTERS.does_meet_id_filter, 0) = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
|
||||||
, CASE WHEN
|
|
||||||
(
|
|
||||||
v_has_filter_dog_name = 0
|
|
||||||
)
|
|
||||||
OR IFNULL(DOG_FILTERS.does_meet_name_filter, 0) = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
|
||||||
FROM demo.DOG_Dog DOG
|
|
||||||
LEFT JOIN Dog_Filters DOG_FILTERS ON DOG.id_dog = DOG_FILTERS.id_dog
|
|
||||||
LEFT JOIN Dog_Access DOG_ACCESS
|
|
||||||
ON DOG.id_dog = DOG_ACCESS.id_dog
|
|
||||||
AND DOG_ACCESS.index_link_in_dog = 1
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_dog = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_dog_id = 1
|
|
||||||
AND DOG_FILTERS.does_meet_id_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_dog_name = 1
|
|
||||||
AND DOG_FILTERS.does_meet_name_filter = 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND IFNULL(DOG_ACCESS.exists_valid_link, 0) = 1
|
|
||||||
AND (
|
|
||||||
a_get_inactive_dog = 1
|
|
||||||
OR DOG.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DELETE FROM tmp_Split_Id_Calc_Dog;
|
|
||||||
DELETE FROM tmp_Split_Name_Calc_Dog;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'After get all dogs';
|
|
||||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
-- Filter records
|
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
/*
|
|
||||||
WITH
|
|
||||||
Dog_Access AS (
|
|
||||||
SELECT
|
|
||||||
DOG.id_dog
|
|
||||||
, CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END AS can_user_access_dog
|
|
||||||
, ROW_NUMBER() OVER (
|
|
||||||
PARTITION BY DOG.id_dog
|
|
||||||
ORDER BY CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END DESC
|
|
||||||
) AS index_link_in_dog
|
|
||||||
, t_USER.does_meet_id_filters AS does_user_meet_id_filters
|
|
||||||
, t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters
|
|
||||||
FROM demo.DOG_Dog DOG
|
|
||||||
LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK
|
|
||||||
ON DOG.id_dog = DOG_USER_LINK.id_dog
|
|
||||||
AND (
|
|
||||||
(
|
|
||||||
a_get_inactive_dog = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR DOG_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER
|
|
||||||
ON DOG_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN demo.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON DOG_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
)
|
|
||||||
*/
|
|
||||||
DELETE t_DOG
|
|
||||||
FROM tmp_Dog_Calc_Dog t_DOG
|
|
||||||
/*
|
|
||||||
LEFT JOIN Dog_Access DOG_ACCESS
|
|
||||||
ON t_DOG.id_dog = DOG_ACCESS.id_dog
|
|
||||||
AND DOG_ACCESS.index_link_in_dog = 1
|
|
||||||
*/
|
|
||||||
-- LEFT JOIN demo.DOG_Dog_User_Link DOG_USER_LINK ON t_DOG.id_dog = DOG_USER_LINK.id_dog
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Dog t_USER ON t_DOG.id_user = t_USER.id_user
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_require_all_id_search_filters_met = 1
|
|
||||||
AND (
|
|
||||||
t_DOG.does_meet_id_filters = 0
|
|
||||||
OR (
|
|
||||||
t_DOG.exists_valid_link = 0
|
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_all_non_id_search_filters_met = 1
|
|
||||||
AND (
|
|
||||||
t_DOG.does_meet_non_id_filters = 0
|
|
||||||
OR (
|
|
||||||
t_DOG.exists_valid_link = 0
|
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_any_id_search_filters_met = 1
|
|
||||||
AND t_DOG.does_meet_id_filters = 0
|
|
||||||
AND (
|
|
||||||
t_DOG.exists_valid_link = 0
|
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_any_non_id_search_filters_met = 1
|
|
||||||
AND t_DOG.does_meet_non_id_filters = 0
|
|
||||||
AND (
|
|
||||||
t_DOG.exists_valid_link = 0
|
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'After filter dogs';
|
|
||||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Dog t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
SELECT * FROM tmp_Obedience_Level;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
DELETE FROM tmp_Dog_Calc_Dog;
|
DELETE FROM tmp_Obedience_Level;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
-- Dogs
|
-- Obedience_Levels
|
||||||
INSERT INTO demo.DOG_Dog_Temp (
|
|
||||||
guid
|
|
||||||
, id_dog
|
|
||||||
, name
|
|
||||||
, appearance
|
|
||||||
, mass_kg
|
|
||||||
, notes
|
|
||||||
, active
|
|
||||||
|
|
||||||
, does_meet_id_filters
|
|
||||||
, does_meet_non_id_filters
|
|
||||||
)
|
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
t_OBEDIENCE_LEVELS.id_obedience_level
|
||||||
, t_DOG.id_dog
|
, t_OBEDIENCE_LEVELS.code
|
||||||
, DOG.name
|
, t_OBEDIENCE_LEVELS.name
|
||||||
, DOG.appearance
|
, t_OBEDIENCE_LEVELS.active
|
||||||
, DOG.mass_kg
|
|
||||||
, DOG.notes
|
|
||||||
, DOG.active
|
|
||||||
|
|
||||||
, t_DOG.does_meet_id_filters
|
, t_OBEDIENCE_LEVELS.does_meet_id_filters
|
||||||
, t_DOG.does_meet_non_id_filters
|
, t_OBEDIENCE_LEVELS.does_meet_non_id_filters
|
||||||
FROM demo.DOG_Dog DOG
|
FROM tmp_Obedience_Level t_OBEDIENCE_LEVELS
|
||||||
INNER JOIN tmp_Dog_Calc_Dog t_DOG ON DOG.id_dog = t_DOG.id_dog
|
LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_OBEDIENCE_LEVELS.id_obedience_level = OBEDIENCE_LEVELS.id_obedience_level
|
||||||
|
ORDER BY t_OBEDIENCE_LEVELS.name
|
||||||
|
;
|
||||||
|
|
||||||
|
-- Errors
|
||||||
|
SELECT
|
||||||
|
t_ERROR.id_error
|
||||||
|
, t_ERROR.id_type
|
||||||
|
, t_ERROR.code
|
||||||
|
, ERROR_TYPE.name
|
||||||
|
, ERROR_TYPE.description
|
||||||
|
, ERROR_TYPE.is_breaking_error
|
||||||
|
, ERROR_TYPE.background_colour
|
||||||
|
, ERROR_TYPE.text_colour
|
||||||
|
, t_ERROR.msg
|
||||||
|
FROM tmp_Msg_Error t_ERROR
|
||||||
|
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Errors
|
|
||||||
IF a_show_errors = 1 THEN
|
|
||||||
SELECT
|
|
||||||
t_ERROR.id_error
|
|
||||||
, t_ERROR.id_type
|
|
||||||
, t_ERROR.code
|
|
||||||
, ERROR_TYPE.name
|
|
||||||
, ERROR_TYPE.description
|
|
||||||
, ERROR_TYPE.is_breaking_error
|
|
||||||
, ERROR_TYPE.background_colour
|
|
||||||
, ERROR_TYPE.text_colour
|
|
||||||
, t_ERROR.msg
|
|
||||||
FROM tmp_Msg_Error_Calc_Dog t_ERROR
|
|
||||||
INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||||
SELECT * FROM tmp_Dog_Calc_Dog;
|
SELECT * FROM tmp_Obedience_Level;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_clear_calc_obedience_level(
|
||||||
|
v_guid -- a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Dog;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Dog;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Dog;
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Dog;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
CALL demo.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -789,14 +279,12 @@ DELIMITER ;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
CALL demo.p_dog_get_many_obedience_level (
|
||||||
CALL demo.p_dog_calc_dog (
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
'slips ' -- a_guid
|
, 1 -- a_get_all_obedience_level
|
||||||
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
, 0 -- a_get_inactive_obedience_level
|
||||||
, 1 -- a_get_all_dog
|
, '' -- a_ids_obedience_level
|
||||||
, 0 -- a_get_inactive_dog
|
, '' -- a_names_obedience_level
|
||||||
, '' -- a_ids_dog
|
|
||||||
, '' -- a_names_dog
|
|
||||||
, 1 -- a_get_all_user
|
, 1 -- a_get_all_user
|
||||||
, 0 -- a_get_inactive_user
|
, 0 -- a_get_inactive_user
|
||||||
, '' -- a_ids_user
|
, '' -- a_ids_user
|
||||||
@@ -806,38 +294,26 @@ CALL demo.p_dog_calc_dog (
|
|||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 1 -- a_require_any_non_id_search_filters_met
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 1 -- a_show_errors
|
|
||||||
, 1 -- a_debug
|
, 1 -- a_debug
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CALL demo.p_dog_calc_dog (
|
CALL demo.p_dog_get_many_obedience_level (
|
||||||
'slips ' -- a_guid
|
1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
||||||
, 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user
|
, 1 -- a_get_all_obedience_level
|
||||||
, 1 -- a_get_all_dog
|
, 0 -- a_get_inactive_obedience_level
|
||||||
, 0 -- a_get_inactive_dog
|
, '' -- a_ids_obedience_level
|
||||||
, '' -- a_ids_dog
|
, 'pat,point' -- a_names_obedience_level
|
||||||
, 'pat' -- a_names_dog
|
|
||||||
, 1 -- a_get_all_user
|
, 1 -- a_get_all_user
|
||||||
, 0 -- a_get_inactive_user
|
, 0 -- a_get_inactive_user
|
||||||
, '' -- a_ids_user
|
, '' -- a_ids_user
|
||||||
, 'pat' -- a_names_user
|
, 'pat,point' -- a_names_user
|
||||||
, 'pat' -- a_emails_user
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 1 -- a_require_any_non_id_search_filters_met
|
, 1 -- a_require_any_non_id_search_filters_met
|
||||||
, 0 -- a_show_errors
|
, 1 -- a_debug
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT *
|
|
||||||
FROM demo.DOG_Dog_Temp
|
|
||||||
;
|
|
||||||
|
|
||||||
CALL demo.p_dog_clear_calc_dog (
|
|
||||||
'slips ' -- a_guid
|
|
||||||
, 1 -- debug
|
|
||||||
);
|
);
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@@ -13,7 +13,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Distraction_Intensity_Level_User_Lin
|
|||||||
, id_intensity_level INT NOT NULL
|
, id_intensity_level INT NOT NULL
|
||||||
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_intensity_level
|
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_intensity_level
|
||||||
FOREIGN KEY (id_intensity_level)
|
FOREIGN KEY (id_intensity_level)
|
||||||
REFERENCES fetchmetrics.DOG_Distraction_Intensity_Level(id_type)
|
REFERENCES fetchmetrics.DOG_Distraction_Intensity_Level(id_intensity_level)
|
||||||
, id_user INT NOT NULL
|
, id_user INT NOT NULL
|
||||||
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_user
|
, CONSTRAINT FK_DOG_Distraction_Intensity_Level_User_Link_id_user
|
||||||
FOREIGN KEY (id_user)
|
FOREIGN KEY (id_user)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ WHERE
|
|||||||
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Response_Quality_Metric_User_Link (
|
CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Response_Quality_Metric_User_Link (
|
||||||
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY
|
||||||
, id_response_quality_metric INT NOT NULL
|
, id_response_quality_metric INT NOT NULL
|
||||||
, CONSTRAINT FK_DOG_Response_Quality_Metric_User_Link_id_response_quality_metric
|
, CONSTRAINT FK_DOG_Response_Quality_Metric_User_Link_id_metric
|
||||||
FOREIGN KEY (id_response_quality_metric)
|
FOREIGN KEY (id_response_quality_metric)
|
||||||
REFERENCES fetchmetrics.DOG_Response_Quality_Metric(id_metric)
|
REFERENCES fetchmetrics.DOG_Response_Quality_Metric(id_metric)
|
||||||
, id_user INT NOT NULL
|
, id_user INT NOT NULL
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Obedience_Level_User_Link (
|
|||||||
, active BIT NOT NULL DEFAULT 1
|
, active BIT NOT NULL DEFAULT 1
|
||||||
, created_on DATETIME
|
, created_on DATETIME
|
||||||
, id_user_created_by INT
|
, id_user_created_by INT
|
||||||
, CONSTRAINT FK_DOG_Dog_id_user_created_by
|
, CONSTRAINT FK_DOG_Obedience_Level_User_Link_id_user_created_by
|
||||||
FOREIGN KEY (id_user_created_by)
|
FOREIGN KEY (id_user_created_by)
|
||||||
REFERENCES fetchmetrics.DOG_User(id_user)
|
REFERENCES fetchmetrics.DOG_User(id_user)
|
||||||
, id_change_set INT
|
, id_change_set INT
|
||||||
, CONSTRAINT FK_DOG_Dog_id_change_set
|
, CONSTRAINT FK_DOG_Obedience_Level_User_Link_id_change_set
|
||||||
FOREIGN KEY (id_change_set)
|
FOREIGN KEY (id_change_set)
|
||||||
REFERENCES fetchmetrics.DOG_Dog_Change_Set(id_change_set)
|
REFERENCES fetchmetrics.DOG_Dog_Change_Set(id_change_set)
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ BEGIN
|
|||||||
, value_new
|
, value_new
|
||||||
, id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
-- Changed dog
|
-- Changed button shape
|
||||||
SELECT NEW.id_link, 'id_button_shape', CONVERT(OLD.id_button_shape, CHAR), CONVERT(NEW.id_button_shape, CHAR), NEW.id_change_set
|
SELECT NEW.id_link, 'id_button_shape', CONVERT(OLD.id_button_shape, CHAR), CONVERT(NEW.id_button_shape, CHAR), NEW.id_change_set
|
||||||
WHERE NOT OLD.id_button_shape <=> NEW.id_button_shape
|
WHERE NOT OLD.id_button_shape <=> NEW.id_button_shape
|
||||||
UNION
|
UNION
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ BEGIN
|
|||||||
, value_new
|
, value_new
|
||||||
, id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
-- Changed dog
|
-- Changed image
|
||||||
SELECT NEW.id_link, 'id_image', CONVERT(OLD.id_image, CHAR), CONVERT(NEW.id_image, CHAR), NEW.id_change_set
|
SELECT NEW.id_link, 'id_image', CONVERT(OLD.id_image, CHAR), CONVERT(NEW.id_image, CHAR), NEW.id_change_set
|
||||||
WHERE NOT OLD.id_image <=> NEW.id_image
|
WHERE NOT OLD.id_image <=> NEW.id_image
|
||||||
UNION
|
UNION
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ BEGIN
|
|||||||
, value_new
|
, value_new
|
||||||
, id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
-- Changed dog
|
-- Changed distraction intensity level
|
||||||
SELECT NEW.id_link, 'id_intensity_level', CONVERT(OLD.id_intensity_level, CHAR), CONVERT(NEW.id_intensity_level, CHAR), NEW.id_change_set
|
SELECT NEW.id_link, 'id_intensity_level', CONVERT(OLD.id_intensity_level, CHAR), CONVERT(NEW.id_intensity_level, CHAR), NEW.id_change_set
|
||||||
WHERE NOT OLD.id_intensity_level <=> NEW.id_intensity_level
|
WHERE NOT OLD.id_intensity_level <=> NEW.id_intensity_level
|
||||||
UNION
|
UNION
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ BEGIN
|
|||||||
, value_new
|
, value_new
|
||||||
, id_change_set
|
, id_change_set
|
||||||
)
|
)
|
||||||
-- Changed dog
|
-- Changed obedience level
|
||||||
SELECT NEW.id_link, 'id_obedience_level', CONVERT(OLD.id_obedience_level, CHAR), CONVERT(NEW.id_obedience_level, CHAR), NEW.id_change_set
|
SELECT NEW.id_link, 'id_obedience_level', CONVERT(OLD.id_obedience_level, CHAR), CONVERT(NEW.id_obedience_level, CHAR), NEW.id_change_set
|
||||||
WHERE NOT OLD.id_obedience_level <=> NEW.id_obedience_level
|
WHERE NOT OLD.id_obedience_level <=> NEW.id_obedience_level
|
||||||
UNION
|
UNION
|
||||||
|
|||||||
@@ -673,7 +673,6 @@ BEGIN
|
|||||||
t_DOG.does_meet_id_filters = 0
|
t_DOG.does_meet_id_filters = 0
|
||||||
OR (
|
OR (
|
||||||
t_DOG.exists_valid_link = 0
|
t_DOG.exists_valid_link = 0
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -684,7 +683,6 @@ BEGIN
|
|||||||
t_DOG.does_meet_non_id_filters = 0
|
t_DOG.does_meet_non_id_filters = 0
|
||||||
OR (
|
OR (
|
||||||
t_DOG.exists_valid_link = 0
|
t_DOG.exists_valid_link = 0
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -694,7 +692,6 @@ BEGIN
|
|||||||
AND t_DOG.does_meet_id_filters = 0
|
AND t_DOG.does_meet_id_filters = 0
|
||||||
AND (
|
AND (
|
||||||
t_DOG.exists_valid_link = 0
|
t_DOG.exists_valid_link = 0
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -703,7 +700,6 @@ BEGIN
|
|||||||
AND t_DOG.does_meet_non_id_filters = 0
|
AND t_DOG.does_meet_non_id_filters = 0
|
||||||
AND (
|
AND (
|
||||||
t_DOG.exists_valid_link = 0
|
t_DOG.exists_valid_link = 0
|
||||||
-- AND IFNULL(DOG_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ BEGIN
|
|||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_is_super_user BIT;
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
DECLARE v_priority_access_level_view INT;
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
@@ -102,6 +103,7 @@ BEGIN
|
|||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
@@ -191,6 +193,7 @@ BEGIN
|
|||||||
id_command_category INT NOT NULL
|
id_command_category INT NOT NULL
|
||||||
, exists_valid_link BIT NOT NULL
|
, exists_valid_link BIT NOT NULL
|
||||||
, id_user INT
|
, id_user INT
|
||||||
|
-- , active BIT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -485,6 +488,8 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Command_Category_Calc_Command (
|
INSERT INTO tmp_Command_Category_Calc_Command (
|
||||||
id_command_category
|
id_command_category
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
@@ -569,6 +574,8 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_CATEGORY.id_command_category
|
COMMAND_CATEGORY.id_command_category
|
||||||
|
, IFNULL(COMMAND_CATEGORY_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, COMMAND_CATEGORY_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_command_category_id = 0
|
v_has_filter_command_category_id = 0
|
||||||
OR COMMAND_CATEGORY_FILTERS.does_meet_id_filter = 1
|
OR COMMAND_CATEGORY_FILTERS.does_meet_id_filter = 1
|
||||||
@@ -729,152 +736,6 @@ BEGIN
|
|||||||
ELSEIF EXISTS ()
|
ELSEIF EXISTS ()
|
||||||
*/
|
*/
|
||||||
ELSE
|
ELSE
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'Command Filters';
|
|
||||||
WITH
|
|
||||||
Command_Id_Filter AS (
|
|
||||||
SELECT COMMAND.id_command
|
|
||||||
FROM tmp_Split_Id_Calc_Command t_SPLIT_ID
|
|
||||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON t_SPLIT_ID.as_int = COMMAND.id_command
|
|
||||||
)
|
|
||||||
, Command_Name_Filter AS (
|
|
||||||
SELECT COMMAND.id_command
|
|
||||||
FROM tmp_Split_Name_Calc_Command t_SPLIT_NAME
|
|
||||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
|
||||||
WHERE
|
|
||||||
t_SPLIT_NAME.substring IS NOT NULL
|
|
||||||
AND t_SPLIT_NAME.substring <> ''
|
|
||||||
)
|
|
||||||
, Command_Hand_Signal_Default_Description_Filter AS (
|
|
||||||
SELECT COMMAND.id_command
|
|
||||||
FROM tmp_Split_Hand_Signal_Default_Description_Calc_Command t_SPLIT_HSDD
|
|
||||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.hand_signal_default_description LIKE CONCAT('%', t_SPLIT_HSDD.substring, '%')
|
|
||||||
WHERE
|
|
||||||
t_SPLIT_HSDD.substring IS NOT NULL
|
|
||||||
AND t_SPLIT_HSDD.substring <> ''
|
|
||||||
)
|
|
||||||
, Command_Notes_Filter AS (
|
|
||||||
SELECT COMMAND.id_command
|
|
||||||
FROM tmp_Split_Notes_Calc_Command t_SPLIT_NOTES
|
|
||||||
INNER JOIN fetchmetrics.DOG_Command COMMAND ON COMMAND.notes LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
|
||||||
WHERE
|
|
||||||
t_SPLIT_NOTES.substring IS NOT NULL
|
|
||||||
AND t_SPLIT_NOTES.substring <> ''
|
|
||||||
)
|
|
||||||
, Command_Filters AS (
|
|
||||||
SELECT
|
|
||||||
COMMAND_COMBINED.id_command
|
|
||||||
, MAX(COMMAND_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
|
||||||
, MAX(COMMAND_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
|
||||||
, MAX(COMMAND_COMBINED.does_meet_hand_signal_default_description_filter) AS does_meet_hand_signal_default_description_filter
|
|
||||||
, MAX(COMMAND_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
COMMAND_ID_FILTER.id_command
|
|
||||||
, 1 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
, 0 AS does_meet_hand_signal_default_description_filter
|
|
||||||
, 0 AS does_meet_notes_filter
|
|
||||||
FROM Command_Id_Filter COMMAND_ID_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
COMMAND_NAME_FILTER.id_command
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 1 AS does_meet_name_filter
|
|
||||||
, 0 AS does_meet_hand_signal_default_description_filter
|
|
||||||
, 0 AS does_meet_notes_filter
|
|
||||||
FROM Command_Name_Filter COMMAND_NAME_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
COMMAND_HSDD_FILTER.id_command
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
, 1 AS does_meet_hand_signal_default_description_filter
|
|
||||||
, 0 AS does_meet_notes_filter
|
|
||||||
FROM Command_Hand_Signal_Default_Description_Filter COMMAND_HSDD_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
COMMAND_NOTES_FILTER.id_command
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
, 0 AS does_meet_hand_signal_default_description_filter
|
|
||||||
, 1 AS does_meet_notes_filter
|
|
||||||
FROM Command_Notes_Filter COMMAND_NOTES_FILTER
|
|
||||||
) COMMAND_COMBINED
|
|
||||||
GROUP BY COMMAND_COMBINED.id_command
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
COMMAND.id_command
|
|
||||||
, COMMAND.id_command_category
|
|
||||||
, CASE WHEN
|
|
||||||
v_has_filter_command_id = 0
|
|
||||||
OR COMMAND_FILTERS.does_meet_id_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
|
||||||
, CASE WHEN
|
|
||||||
(
|
|
||||||
v_has_filter_command_name = 0
|
|
||||||
AND v_has_filter_command_hand_signal_default_description = 0
|
|
||||||
AND v_has_filter_command_notes = 0
|
|
||||||
)
|
|
||||||
OR COMMAND_FILTERS.does_meet_name_filter = 1
|
|
||||||
OR COMMAND_FILTERS.does_meet_hand_signal_default_description_filter = 1
|
|
||||||
OR COMMAND_FILTERS.does_meet_notes_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
|
||||||
, CASE WHEN t_COMMAND_CATEGORY.id_command_category IS NOT NULL THEN 1 ELSE 0 END AS does_command_category_already_exist_in_temp_table
|
|
||||||
FROM fetchmetrics.DOG_Command COMMAND
|
|
||||||
INNER JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
|
||||||
LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK
|
|
||||||
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
|
|
||||||
AND (
|
|
||||||
(
|
|
||||||
a_get_inactive_command_category = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR COMMAND_CATEGORY_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_command = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_command_id = 1
|
|
||||||
AND COMMAND_FILTERS.does_meet_id_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_command_name = 1
|
|
||||||
AND COMMAND_FILTERS.does_meet_name_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_command_hand_signal_default_description = 1
|
|
||||||
AND COMMAND_FILTERS.does_meet_hand_signal_default_description_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_command_notes = 1
|
|
||||||
AND COMMAND_FILTERS.does_meet_notes_filter = 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_command = 1
|
|
||||||
OR COMMAND.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
INSERT INTO tmp_Command_Calc_Command (
|
INSERT INTO tmp_Command_Calc_Command (
|
||||||
id_command
|
id_command
|
||||||
, id_command_category
|
, id_command_category
|
||||||
@@ -954,6 +815,51 @@ BEGIN
|
|||||||
) COMMAND_COMBINED
|
) COMMAND_COMBINED
|
||||||
GROUP BY COMMAND_COMBINED.id_command
|
GROUP BY COMMAND_COMBINED.id_command
|
||||||
)
|
)
|
||||||
|
, Command_Category_Access AS (
|
||||||
|
SELECT
|
||||||
|
COMMAND_CATEGORY.id_command_category
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY COMMAND_CATEGORY.id_command_category
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_command_category
|
||||||
|
, t_USER.id_user
|
||||||
|
, COMMAND_CATEGORY.active
|
||||||
|
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK
|
||||||
|
ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_command_category = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR COMMAND_CATEGORY_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER
|
||||||
|
ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND.id_command
|
COMMAND.id_command
|
||||||
, COMMAND.id_command_category
|
, COMMAND.id_command_category
|
||||||
@@ -973,28 +879,13 @@ BEGIN
|
|||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
, CASE WHEN t_COMMAND_CATEGORY.id_command_category IS NOT NULL THEN 1 ELSE 0 END AS does_command_category_already_exist_in_temp_table
|
, CASE WHEN t_COMMAND_CATEGORY.id_command_category IS NOT NULL THEN 1 ELSE 0 END AS does_command_category_already_exist_in_temp_table
|
||||||
FROM fetchmetrics.DOG_Command COMMAND
|
FROM fetchmetrics.DOG_Command COMMAND
|
||||||
INNER JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
LEFT JOIN tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY ON COMMAND.id_command_category = t_COMMAND_CATEGORY.id_command_category
|
||||||
LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command
|
LEFT JOIN Command_Filters COMMAND_FILTERS ON COMMAND.id_command = COMMAND_FILTERS.id_command
|
||||||
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK
|
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
|
||||||
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
|
ON COMMAND.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
|
||||||
AND (
|
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
|
||||||
(
|
|
||||||
a_get_inactive_command_category = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR COMMAND_CATEGORY_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_command = 1
|
a_get_all_command = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_command_id = 1
|
v_has_filter_command_id = 1
|
||||||
@@ -1013,17 +904,15 @@ BEGIN
|
|||||||
AND COMMAND_FILTERS.does_meet_notes_filter = 1
|
AND COMMAND_FILTERS.does_meet_notes_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
AND (
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_command = 1
|
a_get_inactive_command = 1
|
||||||
OR COMMAND.active = 1
|
OR COMMAND.active = 1
|
||||||
)
|
)
|
||||||
|
AND IFNULL(COMMAND_CATEGORY_ACCESS.exists_valid_link, 0) = 1
|
||||||
|
AND (
|
||||||
|
a_get_inactive_command_category = 1
|
||||||
|
OR COMMAND_CATEGORY_ACCESS.active = 1
|
||||||
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -1040,28 +929,29 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Missing Categories
|
-- Missing Categories
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
/*
|
||||||
|
IF
|
||||||
|
NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1)
|
||||||
|
AND a_require_all_id_search_filters_met = 0
|
||||||
|
AND a_require_all_non_id_search_filters_met = 0
|
||||||
|
THEN
|
||||||
|
|
||||||
IF
|
INSERT INTO tmp_Command_Category_Calc_Command (
|
||||||
a_require_all_id_search_filters_met = 0
|
id_command_category
|
||||||
AND a_require_all_non_id_search_filters_met = 0
|
, does_meet_id_filters
|
||||||
THEN
|
, does_meet_non_id_filters
|
||||||
INSERT INTO tmp_Command_Category_Calc_Command (
|
)
|
||||||
id_command_category
|
SELECT DISTINCT
|
||||||
, does_meet_id_filters
|
COMMAND_CATEGORY.id_command_category
|
||||||
, does_meet_non_id_filters
|
, 0 AS does_meet_id_filters
|
||||||
)
|
, 0 AS does_meet_non_id_filters
|
||||||
SELECT DISTINCT
|
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
||||||
COMMAND_CATEGORY.id_command_category
|
INNER JOIN tmp_Command_Calc_Command t_COMMAND
|
||||||
, 0 AS does_meet_id_filters
|
ON COMMAND_CATEGORY.id_command_category = t_COMMAND.id_command_category
|
||||||
, 0 AS does_meet_non_id_filters
|
AND t_COMMAND.does_command_category_already_exist_in_temp_table = 0
|
||||||
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
;
|
||||||
INNER JOIN tmp_Command_Calc_Command t_COMMAND
|
|
||||||
ON COMMAND_CATEGORY.id_command_category = t_COMMAND.id_command_category
|
|
||||||
AND t_COMMAND.does_command_category_already_exist_in_temp_table = 0
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
END IF;
|
||||||
|
*/
|
||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Command t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
@@ -1088,109 +978,19 @@ BEGIN
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_COMMAND.does_meet_id_filters = 0
|
AND t_COMMAND.does_meet_id_filters = 0
|
||||||
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||||
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_COMMAND.does_meet_non_id_filters = 0
|
AND t_COMMAND.does_meet_non_id_filters = 0
|
||||||
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
||||||
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
WITH
|
|
||||||
Category_And_Best_Command AS (
|
|
||||||
SELECT
|
|
||||||
t_COMMAND.id_command_category
|
|
||||||
, MAX(IFNULL(t_COMMAND.does_meet_id_filters, 0)) AS does_meet_id_filters
|
|
||||||
, MAX(IFNULL(t_COMMAND.does_meet_non_id_filters, 0)) AS does_meet_non_id_filters
|
|
||||||
FROM tmp_Command_Calc_Command t_COMMAND
|
|
||||||
GROUP BY t_COMMAND.id_command_category
|
|
||||||
)
|
|
||||||
, Command_Category_Access AS (
|
|
||||||
SELECT
|
|
||||||
COMMAND_CATEGORY.id_command_category
|
|
||||||
, CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END AS can_user_access_command_category
|
|
||||||
, ROW_NUMBER() OVER (
|
|
||||||
PARTITION BY COMMAND_CATEGORY.id_command_category
|
|
||||||
ORDER BY CASE WHEN
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
THEN 1 ELSE 0 END DESC
|
|
||||||
) AS index_link_in_command_category
|
|
||||||
, t_USER.does_meet_id_filters AS does_user_meet_id_filters
|
|
||||||
, t_USER.does_meet_non_id_filters AS does_user_meet_non_id_filters
|
|
||||||
FROM fetchmetrics.DOG_Command_Category COMMAND_CATEGORY
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Command_Category_User_Link COMMAND_CATEGORY_USER_LINK
|
|
||||||
ON COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_USER_LINK.id_command_category
|
|
||||||
AND (
|
|
||||||
(
|
|
||||||
a_get_inactive_command_category = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR COMMAND_CATEGORY_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
)
|
|
||||||
SELECT *
|
|
||||||
FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY
|
|
||||||
LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category
|
|
||||||
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
|
|
||||||
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
|
|
||||||
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_require_all_id_search_filters_met = 1
|
|
||||||
AND (
|
|
||||||
IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
|
||||||
OR t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
|
||||||
OR IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_all_non_id_search_filters_met = 1
|
|
||||||
AND (
|
|
||||||
IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
|
||||||
OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
|
||||||
OR IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_any_id_search_filters_met = 1
|
|
||||||
AND IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
|
||||||
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
|
||||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
a_require_any_non_id_search_filters_met = 1
|
|
||||||
AND IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
|
||||||
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
|
||||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
Category_And_Best_Command AS (
|
Category_And_Best_Command AS (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -1200,6 +1000,7 @@ BEGIN
|
|||||||
FROM tmp_Command_Calc_Command t_COMMAND
|
FROM tmp_Command_Calc_Command t_COMMAND
|
||||||
GROUP BY t_COMMAND.id_command_category
|
GROUP BY t_COMMAND.id_command_category
|
||||||
)
|
)
|
||||||
|
/*
|
||||||
, Command_Category_Access AS (
|
, Command_Category_Access AS (
|
||||||
SELECT
|
SELECT
|
||||||
COMMAND_CATEGORY.id_command_category
|
COMMAND_CATEGORY.id_command_category
|
||||||
@@ -1242,19 +1043,23 @@ BEGIN
|
|||||||
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
ON COMMAND_CATEGORY_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
AND ACCESS_LEVEL.active = 1
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
|
*/
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY
|
FROM tmp_Command_Category_Calc_Command t_COMMAND_CATEGORY
|
||||||
LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category
|
LEFT JOIN Category_And_Best_Command CATEGORY_BEST ON t_COMMAND_CATEGORY.id_command_category = CATEGORY_BEST.id_command_category
|
||||||
|
/*
|
||||||
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
|
LEFT JOIN Command_Category_Access COMMAND_CATEGORY_ACCESS
|
||||||
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
|
ON t_COMMAND_CATEGORY.id_command_category = COMMAND_CATEGORY_ACCESS.id_command_category
|
||||||
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
|
AND COMMAND_CATEGORY_ACCESS.index_link_in_command_category = 1
|
||||||
|
*/
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Command t_USER ON t_COMMAND_CATEGORY.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
||||||
OR t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
OR t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||||
OR IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
OR IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
@@ -1262,20 +1067,20 @@ BEGIN
|
|||||||
AND (
|
AND (
|
||||||
IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
||||||
OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
OR t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
||||||
OR IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
AND IFNULL(CATEGORY_BEST.does_meet_id_filters, 0) = 0
|
||||||
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
AND t_COMMAND_CATEGORY.does_meet_id_filters = 0
|
||||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
AND IFNULL(CATEGORY_BEST.does_meet_non_id_filters, 0) = 0
|
||||||
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
AND t_COMMAND_CATEGORY.does_meet_non_id_filters = 0
|
||||||
AND IFNULL(COMMAND_CATEGORY_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -171,6 +171,8 @@ BEGIN
|
|||||||
CREATE TEMPORARY TABLE tmp_Location_Calc_Location (
|
CREATE TEMPORARY TABLE tmp_Location_Calc_Location (
|
||||||
id_location INT NOT NULL
|
id_location INT NOT NULL
|
||||||
, id_location_parent INT
|
, id_location_parent INT
|
||||||
|
, exists_valid_link BIT
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
, csv_id_locations_parent TEXT
|
, csv_id_locations_parent TEXT
|
||||||
@@ -450,100 +452,11 @@ BEGIN
|
|||||||
ELSEIF EXISTS ()
|
ELSEIF EXISTS ()
|
||||||
*/
|
*/
|
||||||
ELSE
|
ELSE
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'Location Filters';
|
|
||||||
WITH
|
|
||||||
Location_Id_Filter AS (
|
|
||||||
SELECT LOCATIONS.id_location
|
|
||||||
FROM tmp_Split_Id_Calc_Location t_SPLIT_ID
|
|
||||||
INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON t_SPLIT_ID.as_int = LOCATIONS.id_location
|
|
||||||
)
|
|
||||||
, Location_Name_Filter AS (
|
|
||||||
SELECT LOCATIONS.id_location
|
|
||||||
FROM tmp_Split_Name_Calc_Location t_SPLIT_NAME
|
|
||||||
INNER JOIN fetchmetrics.DOG_Location LOCATIONS ON LOCATIONS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
|
||||||
)
|
|
||||||
, Location_Filters AS (
|
|
||||||
SELECT
|
|
||||||
LOCATIONS_COMBINED.id_location
|
|
||||||
, MAX(LOCATIONS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
|
||||||
, MAX(LOCATIONS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
LOCATIONS_ID_FILTER.id_location
|
|
||||||
, 1 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
FROM Location_Id_Filter LOCATIONS_ID_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
LOCATIONS_NAME_FILTER.id_location
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 1 AS does_meet_name_filter
|
|
||||||
FROM Location_Name_Filter LOCATIONS_NAME_FILTER
|
|
||||||
) LOCATIONS_COMBINED
|
|
||||||
GROUP BY LOCATIONS_COMBINED.id_location
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
LOCATIONS.id_location
|
|
||||||
, CASE WHEN
|
|
||||||
v_has_filter_location_id = 0
|
|
||||||
OR IFNULL(LOCATIONS_FILTERS.does_meet_id_filter, 0) = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
|
||||||
, CASE WHEN
|
|
||||||
(
|
|
||||||
v_has_filter_location_name = 0
|
|
||||||
)
|
|
||||||
OR IFNULL(LOCATIONS_FILTERS.does_meet_name_filter, 0) = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
|
||||||
FROM fetchmetrics.DOG_Location LOCATIONS
|
|
||||||
LEFT JOIN Location_Filters LOCATIONS_FILTERS ON LOCATIONS.id_location = LOCATIONS_FILTERS.id_location
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK
|
|
||||||
ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location
|
|
||||||
AND (
|
|
||||||
(
|
|
||||||
a_get_inactive_location = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR LOCATION_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER
|
|
||||||
ON LOCATION_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_location = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_location_id = 1
|
|
||||||
AND LOCATIONS_FILTERS.does_meet_id_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_location_name = 1
|
|
||||||
AND LOCATIONS_FILTERS.does_meet_name_filter = 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_location = 1
|
|
||||||
OR LOCATIONS.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
INSERT INTO tmp_Location_Calc_Location (
|
INSERT INTO tmp_Location_Calc_Location (
|
||||||
id_location
|
id_location
|
||||||
, id_location_parent
|
, id_location_parent
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
@@ -581,9 +494,55 @@ BEGIN
|
|||||||
) LOCATIONS_COMBINED
|
) LOCATIONS_COMBINED
|
||||||
GROUP BY LOCATIONS_COMBINED.id_location
|
GROUP BY LOCATIONS_COMBINED.id_location
|
||||||
)
|
)
|
||||||
|
, Location_Access AS (
|
||||||
|
SELECT
|
||||||
|
LOCATIONS.id_location
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY LOCATIONS.id_location
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_location
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Location LOCATIONS
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK
|
||||||
|
ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_location = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR LOCATION_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER
|
||||||
|
ON LOCATION_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
LOCATIONS.id_location
|
LOCATIONS.id_location
|
||||||
, LOCATIONS.id_location_parent
|
, LOCATIONS.id_location_parent
|
||||||
|
, IFNULL(LOCATIONS_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, LOCATIONS_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_location_id = 0
|
v_has_filter_location_id = 0
|
||||||
OR IFNULL(LOCATIONS_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(LOCATIONS_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
@@ -596,26 +555,11 @@ BEGIN
|
|||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Location LOCATIONS
|
FROM fetchmetrics.DOG_Location LOCATIONS
|
||||||
LEFT JOIN Location_Filters LOCATIONS_FILTERS ON LOCATIONS.id_location = LOCATIONS_FILTERS.id_location
|
LEFT JOIN Location_Filters LOCATIONS_FILTERS ON LOCATIONS.id_location = LOCATIONS_FILTERS.id_location
|
||||||
LEFT JOIN fetchmetrics.DOG_Location_User_Link LOCATION_USER_LINK
|
LEFT JOIN Location_Access LOCATIONS_ACCESS
|
||||||
ON LOCATIONS.id_location = LOCATION_USER_LINK.id_location
|
ON LOCATIONS.id_location = LOCATIONS_ACCESS.id_location
|
||||||
AND (
|
AND LOCATIONS_ACCESS.index_link_in_location = 1
|
||||||
(
|
|
||||||
a_get_inactive_location = 1
|
|
||||||
AND a_get_inactive_user = 1
|
|
||||||
)
|
|
||||||
OR LOCATION_USER_LINK.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER
|
|
||||||
ON LOCATION_USER_LINK.id_user = t_USER.id_user
|
|
||||||
AND (
|
|
||||||
a_get_inactive_user = 1
|
|
||||||
OR t_USER.active = 1
|
|
||||||
)
|
|
||||||
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
|
||||||
ON LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
|
||||||
AND ACCESS_LEVEL.active = 1
|
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_location = 1
|
a_get_all_location = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_location_id = 1
|
v_has_filter_location_id = 1
|
||||||
@@ -626,13 +570,7 @@ BEGIN
|
|||||||
AND LOCATIONS_FILTERS.does_meet_name_filter = 1
|
AND LOCATIONS_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
AND (
|
AND IFNULL(LOCATIONS_ACCESS.exists_valid_link, 0) = 1
|
||||||
v_is_super_user = 1
|
|
||||||
OR (
|
|
||||||
t_USER.id_user IS NOT NULL
|
|
||||||
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_location = 1
|
a_get_inactive_location = 1
|
||||||
OR LOCATIONS.active = 1
|
OR LOCATIONS.active = 1
|
||||||
@@ -651,6 +589,7 @@ BEGIN
|
|||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Location t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Location t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
|
/*
|
||||||
WITH
|
WITH
|
||||||
Location_Access AS (
|
Location_Access AS (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -694,45 +633,35 @@ BEGIN
|
|||||||
ON LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
ON LOCATION_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
AND ACCESS_LEVEL.active = 1
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
|
*/
|
||||||
DELETE t_LOCATIONS
|
DELETE t_LOCATIONS
|
||||||
FROM tmp_Location_Calc_Location t_LOCATIONS
|
FROM tmp_Location_Calc_Location t_LOCATIONS
|
||||||
LEFT JOIN Location_Access LOCATION_ACCESS ON t_LOCATIONS.id_location = LOCATION_ACCESS.id_location
|
-- LEFT JOIN Location_Access LOCATION_ACCESS ON t_LOCATIONS.id_location = LOCATION_ACCESS.id_location
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Location t_USER ON t_LOCATIONS.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_LOCATIONS.does_meet_id_filters = 0
|
t_LOCATIONS.does_meet_id_filters = 0
|
||||||
OR (
|
OR IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0
|
|
||||||
AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_LOCATIONS.does_meet_non_id_filters = 0
|
t_LOCATIONS.does_meet_non_id_filters = 0
|
||||||
OR (
|
OR IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0
|
|
||||||
AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_LOCATIONS.does_meet_id_filters = 0
|
AND t_LOCATIONS.does_meet_id_filters = 0
|
||||||
AND (
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0
|
|
||||||
AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_LOCATIONS.does_meet_non_id_filters = 0
|
AND t_LOCATIONS.does_meet_non_id_filters = 0
|
||||||
AND (
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
IFNULL(LOCATION_ACCESS.can_user_access_location, 0) = 0
|
|
||||||
AND IFNULL(LOCATION_ACCESS.does_user_meet_non_id_filters, 0) = 0
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_button_shape (
|
|||||||
, IN a_ids_button_shape TEXT
|
, IN a_ids_button_shape TEXT
|
||||||
, IN a_names_button_shape TEXT
|
, IN a_names_button_shape TEXT
|
||||||
, IN a_notes_button_shape TEXT
|
, IN a_notes_button_shape TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -31,6 +36,9 @@ BEGIN
|
|||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -87,7 +95,9 @@ BEGIN
|
|||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -113,6 +123,11 @@ BEGIN
|
|||||||
, a_ids_button_shape
|
, a_ids_button_shape
|
||||||
, a_names_button_shape
|
, a_names_button_shape
|
||||||
, a_notes_button_shape
|
, a_notes_button_shape
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -134,9 +149,30 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Button_Shape;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Button_Shape (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Button_Shape_Calc_Button_Shape (
|
CREATE TEMPORARY TABLE tmp_Button_Shape_Calc_Button_Shape (
|
||||||
id_button_shape INT NOT NULL
|
id_button_shape INT NOT NULL
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -170,6 +206,172 @@ BEGIN
|
|||||||
SET v_has_filter_button_shape_name = CASE WHEN a_names_button_shape <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_button_shape_name = CASE WHEN a_names_button_shape <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_button_shape_notes = CASE WHEN a_notes_button_shape <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_button_shape_notes = CASE WHEN a_notes_button_shape <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_Button_Shape t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_Button_Shape (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and Button_Shapes.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_Button_Shape (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_Button_Shape;
|
||||||
|
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR;
|
||||||
|
SELECT * FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Button_Shapes
|
-- Button_Shapes
|
||||||
IF v_has_filter_button_shape_id = 1 THEN
|
IF v_has_filter_button_shape_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_button_shape, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_button_shape, ',', a_debug);
|
||||||
@@ -238,12 +440,12 @@ BEGIN
|
|||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(BUTTON_SHAPES.id_button_shape)
|
OR ISNULL(BUTTON_SHAPE.id_button_shape)
|
||||||
OR (
|
OR (
|
||||||
BUTTON_SHAPES.active = 0
|
BUTTON_SHAPE.active = 0
|
||||||
AND a_get_inactive_button_shape = 0
|
AND a_get_inactive_button_shape = 0
|
||||||
)
|
)
|
||||||
) THEN
|
) THEN
|
||||||
@@ -257,12 +459,12 @@ BEGIN
|
|||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive Button_Shape IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive Button_Shape IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
LEFT JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(BUTTON_SHAPES.id_button_shape)
|
OR ISNULL(BUTTON_SHAPE.id_button_shape)
|
||||||
OR (
|
OR (
|
||||||
BUTTON_SHAPES.active = 0
|
BUTTON_SHAPE.active = 0
|
||||||
AND a_get_inactive_button_shape = 0
|
AND a_get_inactive_button_shape = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@@ -272,88 +474,140 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Button_Shape_Calc_Button_Shape (
|
INSERT INTO tmp_Button_Shape_Calc_Button_Shape (
|
||||||
id_button_shape
|
id_button_shape
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
WITH
|
WITH
|
||||||
Button_Shape_Id_Filter AS (
|
Button_Shape_Id_Filter AS (
|
||||||
SELECT BUTTON_SHAPES.id_button_shape
|
SELECT BUTTON_SHAPE.id_button_shape
|
||||||
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Button_Shape t_SPLIT_ID
|
||||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON t_SPLIT_ID.as_int = BUTTON_SHAPES.id_button_shape
|
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON t_SPLIT_ID.as_int = BUTTON_SHAPE.id_button_shape
|
||||||
)
|
)
|
||||||
, Button_Shape_Name_Filter AS (
|
, Button_Shape_Name_Filter AS (
|
||||||
SELECT BUTTON_SHAPES.id_button_shape
|
SELECT BUTTON_SHAPE.id_button_shape
|
||||||
FROM tmp_Split_Name_Calc_Button_Shape t_SPLIT_NAME
|
FROM tmp_Split_Name_Calc_Button_Shape t_SPLIT_NAME
|
||||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON BUTTON_SHAPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON BUTTON_SHAPE.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||||
)
|
)
|
||||||
, Button_Shape_Notes_Filter AS (
|
, Button_Shape_Notes_Filter AS (
|
||||||
SELECT BUTTON_SHAPES.id_button_shape
|
SELECT BUTTON_SHAPE.id_button_shape
|
||||||
FROM tmp_Split_Notes_Calc_Button_Shape t_SPLIT_NOTES
|
FROM tmp_Split_Notes_Calc_Button_Shape t_SPLIT_NOTES
|
||||||
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPES ON BUTTON_SHAPES.name LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
INNER JOIN fetchmetrics.DOG_Button_Shape BUTTON_SHAPE ON BUTTON_SHAPE.name LIKE CONCAT('%', t_SPLIT_NOTES.substring, '%')
|
||||||
WHERE NULLIF(t_SPLIT_NOTES.substring, '') IS NOT NULL
|
WHERE NULLIF(t_SPLIT_NOTES.substring, '') IS NOT NULL
|
||||||
)
|
)
|
||||||
, Button_Shape_Filters AS (
|
, Button_Shape_Filters AS (
|
||||||
SELECT
|
SELECT
|
||||||
BUTTON_SHAPES_COMBINED.id_button_shape
|
BUTTON_SHAPE_COMBINED.id_button_shape
|
||||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
, MAX(BUTTON_SHAPE_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
, MAX(BUTTON_SHAPE_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
, MAX(BUTTON_SHAPES_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
, MAX(BUTTON_SHAPE_COMBINED.does_meet_notes_filter) AS does_meet_notes_filter
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
BUTTON_SHAPES_ID_FILTER.id_button_shape
|
BUTTON_SHAPE_ID_FILTER.id_button_shape
|
||||||
, 1 AS does_meet_id_filter
|
, 1 AS does_meet_id_filter
|
||||||
, 0 AS does_meet_name_filter
|
, 0 AS does_meet_name_filter
|
||||||
, 0 AS does_meet_notes_filter
|
, 0 AS does_meet_notes_filter
|
||||||
FROM Button_Shape_Id_Filter BUTTON_SHAPES_ID_FILTER
|
FROM Button_Shape_Id_Filter BUTTON_SHAPE_ID_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
BUTTON_SHAPES_NAME_FILTER.id_button_shape
|
BUTTON_SHAPE_NAME_FILTER.id_button_shape
|
||||||
, 0 AS does_meet_id_filter
|
, 0 AS does_meet_id_filter
|
||||||
, 1 AS does_meet_name_filter
|
, 1 AS does_meet_name_filter
|
||||||
, 0 AS does_meet_notes_filter
|
, 0 AS does_meet_notes_filter
|
||||||
FROM Button_Shape_Name_Filter BUTTON_SHAPES_NAME_FILTER
|
FROM Button_Shape_Name_Filter BUTTON_SHAPE_NAME_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
BUTTON_SHAPES_NOTES_FILTER.id_button_shape
|
BUTTON_SHAPE_NOTES_FILTER.id_button_shape
|
||||||
, 0 AS does_meet_id_filter
|
, 0 AS does_meet_id_filter
|
||||||
, 0 AS does_meet_name_filter
|
, 0 AS does_meet_name_filter
|
||||||
, 1 AS does_meet_notes_filter
|
, 1 AS does_meet_notes_filter
|
||||||
FROM Button_Shape_Notes_Filter BUTTON_SHAPES_NOTES_FILTER
|
FROM Button_Shape_Notes_Filter BUTTON_SHAPE_NOTES_FILTER
|
||||||
) BUTTON_SHAPES_COMBINED
|
) BUTTON_SHAPE_COMBINED
|
||||||
GROUP BY BUTTON_SHAPES_COMBINED.id_button_shape
|
GROUP BY BUTTON_SHAPE_COMBINED.id_button_shape
|
||||||
|
)
|
||||||
|
, Button_Shape_Access AS (
|
||||||
|
SELECT
|
||||||
|
BUTTON_SHAPE.id_button_shape
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY BUTTON_SHAPE.id_button_shape
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_button_shape
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Button_Shape_User_Link BUTTON_SHAPE_USER_LINK
|
||||||
|
ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_USER_LINK.id_button_shape
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_button_shape = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR BUTTON_SHAPE_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Button_Shape t_USER
|
||||||
|
ON BUTTON_SHAPE_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON BUTTON_SHAPE_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
BUTTON_SHAPES.id_button_shape
|
BUTTON_SHAPE.id_button_shape
|
||||||
|
, BUTTON_SHAPE_ACCESS.exists_valid_link
|
||||||
|
, BUTTON_SHAPE_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_button_shape_id = 0
|
v_has_filter_button_shape_id = 0
|
||||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
(
|
(
|
||||||
v_has_filter_button_shape_name = 0
|
v_has_filter_button_shape_name = 0
|
||||||
AND v_has_filter_button_shape_notes = 0
|
AND v_has_filter_button_shape_notes = 0
|
||||||
)
|
)
|
||||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_name_filter, 0) = 1
|
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
OR IFNULL(BUTTON_SHAPES_FILTERS.does_meet_notes_filter, 0) = 1
|
OR IFNULL(BUTTON_SHAPE_FILTERS.does_meet_notes_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPES
|
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||||
LEFT JOIN Button_Shape_Filters BUTTON_SHAPES_FILTERS ON BUTTON_SHAPES.id_button_shape = BUTTON_SHAPES_FILTERS.id_button_shape
|
LEFT JOIN Button_Shape_Filters BUTTON_SHAPE_FILTERS ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_FILTERS.id_button_shape
|
||||||
|
LEFT JOIN Button_Shape_Access BUTTON_SHAPE_ACCESS
|
||||||
|
ON BUTTON_SHAPE.id_button_shape = BUTTON_SHAPE_ACCESS.id_button_shape
|
||||||
|
AND BUTTON_SHAPE_ACCESS.index_link_in_button_shape = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_button_shape = 1
|
a_get_all_button_shape = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_button_shape_id = 1
|
v_has_filter_button_shape_id = 1
|
||||||
AND BUTTON_SHAPES_FILTERS.does_meet_id_filter = 1
|
AND BUTTON_SHAPE_FILTERS.does_meet_id_filter = 1
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_button_shape_name = 1
|
v_has_filter_button_shape_name = 1
|
||||||
AND BUTTON_SHAPES_FILTERS.does_meet_name_filter = 1
|
AND BUTTON_SHAPE_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(BUTTON_SHAPE_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_button_shape = 1
|
a_get_inactive_button_shape = 1
|
||||||
OR BUTTON_SHAPES.active = 1
|
OR BUTTON_SHAPE.active = 1
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -370,28 +624,45 @@ BEGIN
|
|||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Button_Shape t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
DELETE t_BUTTON_SHAPES
|
DELETE t_BUTTON_SHAPE
|
||||||
FROM tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPES
|
FROM tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPE
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Button_Shape t_USER ON t_BUTTON_SHAPE.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_BUTTON_SHAPES.does_meet_id_filters = 0
|
t_BUTTON_SHAPE.does_meet_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_BUTTON_SHAPES.does_meet_non_id_filters = 0
|
t_BUTTON_SHAPE.does_meet_non_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_BUTTON_SHAPES.does_meet_id_filters = 0
|
AND t_BUTTON_SHAPE.does_meet_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_BUTTON_SHAPES.does_meet_non_id_filters = 0
|
AND t_BUTTON_SHAPE.does_meet_non_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_BUTTON_SHAPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -403,81 +674,6 @@ BEGIN
|
|||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_Button_Shape t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Button_Shape (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Button_Shapes.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
||||||
@@ -512,17 +708,17 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, t_BUTTON_SHAPES.id_button_shape
|
, t_BUTTON_SHAPE.id_button_shape
|
||||||
, BUTTON_SHAPES.code
|
, BUTTON_SHAPE.code
|
||||||
, BUTTON_SHAPES.name
|
, BUTTON_SHAPE.name
|
||||||
, BUTTON_SHAPES.notes
|
, BUTTON_SHAPE.notes
|
||||||
, BUTTON_SHAPES.active
|
, BUTTON_SHAPE.active
|
||||||
|
|
||||||
, t_BUTTON_SHAPES.does_meet_id_filters
|
, t_BUTTON_SHAPE.does_meet_id_filters
|
||||||
, t_BUTTON_SHAPES.does_meet_non_id_filters
|
, t_BUTTON_SHAPE.does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPES
|
FROM fetchmetrics.DOG_Button_Shape BUTTON_SHAPE
|
||||||
INNER JOIN tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPES ON BUTTON_SHAPES.id_button_shape = t_BUTTON_SHAPES.id_button_shape
|
INNER JOIN tmp_Button_Shape_Calc_Button_Shape t_BUTTON_SHAPE ON BUTTON_SHAPE.id_button_shape = t_BUTTON_SHAPE.id_button_shape
|
||||||
ORDER BY BUTTON_SHAPES.name
|
ORDER BY BUTTON_SHAPE.name
|
||||||
;
|
;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@@ -546,14 +742,13 @@ BEGIN
|
|||||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||||
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
SELECT * FROM tmp_Button_Shape_Calc_Button_Shape;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 );
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Notes_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Button_Shape;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Button_Shape_Calc_Button_Shape;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Button_Shape;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -564,6 +759,9 @@ DELIMITER ;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM fetchmetrics.DOG_Button_Shape
|
||||||
|
;
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_button_shape (
|
CALL fetchmetrics.p_dog_calc_button_shape (
|
||||||
'gripe ' -- a_guid
|
'gripe ' -- a_guid
|
||||||
@@ -573,6 +771,11 @@ CALL fetchmetrics.p_dog_calc_button_shape (
|
|||||||
, '' -- a_ids_button_shape
|
, '' -- a_ids_button_shape
|
||||||
, '' -- a_names_button_shape
|
, '' -- a_names_button_shape
|
||||||
, '' -- a_notes_button_shape
|
, '' -- a_notes_button_shape
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_button_shape (
|
|||||||
, IN a_ids_button_shape TEXT
|
, IN a_ids_button_shape TEXT
|
||||||
, IN a_names_button_shape TEXT
|
, IN a_names_button_shape TEXT
|
||||||
, IN a_notes_button_shape TEXT
|
, IN a_notes_button_shape TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -27,6 +32,9 @@ BEGIN
|
|||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -84,7 +92,9 @@ BEGIN
|
|||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
/*
|
/*
|
||||||
SET a_get_all_button_shape := IFNULL(a_get_all_button_shape, 0);
|
SET a_get_all_button_shape := IFNULL(a_get_all_button_shape, 0);
|
||||||
@@ -107,6 +117,11 @@ BEGIN
|
|||||||
, a_ids_button_shape
|
, a_ids_button_shape
|
||||||
, a_names_button_shape
|
, a_names_button_shape
|
||||||
, a_notes_button_shape
|
, a_notes_button_shape
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -233,6 +248,11 @@ BEGIN
|
|||||||
, a_ids_button_shape -- a_ids_button_shape
|
, a_ids_button_shape -- a_ids_button_shape
|
||||||
, a_names_button_shape -- a_names_button_shape
|
, a_names_button_shape -- a_names_button_shape
|
||||||
, a_notes_button_shape -- a_notes_button_shape
|
, a_notes_button_shape -- a_notes_button_shape
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -250,6 +270,11 @@ BEGIN
|
|||||||
, a_ids_button_shape -- a_ids_button_shape
|
, a_ids_button_shape -- a_ids_button_shape
|
||||||
, a_names_button_shape -- a_names_button_shape
|
, a_names_button_shape -- a_names_button_shape
|
||||||
, a_notes_button_shape -- a_notes_button_shape
|
, a_notes_button_shape -- a_notes_button_shape
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -361,6 +386,11 @@ CALL fetchmetrics.p_dog_get_many_button_shape (
|
|||||||
, '' -- a_ids_button_shape
|
, '' -- a_ids_button_shape
|
||||||
, '' -- a_names_button_shape
|
, '' -- a_names_button_shape
|
||||||
, '' -- a_notes_button_shape
|
, '' -- a_notes_button_shape
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -376,6 +406,11 @@ CALL fetchmetrics.p_dog_get_many_button_shape (
|
|||||||
, '' -- a_ids_button_shape
|
, '' -- a_ids_button_shape
|
||||||
, 'pat,point' -- a_names_button_shape
|
, 'pat,point' -- a_names_button_shape
|
||||||
, 'pat,point' -- a_notes_button_shape
|
, 'pat,point' -- a_notes_button_shape
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, 'pat,point' -- a_names_user
|
||||||
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_image (
|
|||||||
, IN a_get_inactive_image BIT
|
, IN a_get_inactive_image BIT
|
||||||
, IN a_ids_image TEXT
|
, IN a_ids_image TEXT
|
||||||
, IN a_names_image TEXT
|
, IN a_names_image TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -36,9 +41,14 @@ BEGIN
|
|||||||
DECLARE v_has_filter_image_name BIT;
|
DECLARE v_has_filter_image_name BIT;
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(200);
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -93,10 +103,17 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_ids_permission_required := (SELECT CONCAT(
|
||||||
|
CONVERT(v_id_permission_dog_view, CHAR)
|
||||||
|
, ','
|
||||||
|
, CONVERT(v_id_permission_command_view, CHAR)
|
||||||
|
));
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
@@ -135,6 +152,11 @@ BEGIN
|
|||||||
, a_get_inactive_image
|
, a_get_inactive_image
|
||||||
, a_ids_image
|
, a_ids_image
|
||||||
, a_names_image
|
, a_names_image
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -146,7 +168,9 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
|
, v_id_permission_command_view
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
|
, v_ids_permission_required
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -157,6 +181,25 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Image;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Image (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_File_Type_Calc_Image (
|
CREATE TEMPORARY TABLE tmp_File_Type_Calc_Image (
|
||||||
id_file_type INT NOT NULL
|
id_file_type INT NOT NULL
|
||||||
@@ -166,10 +209,6 @@ BEGIN
|
|||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Dog_Calc_Image (
|
CREATE TEMPORARY TABLE tmp_Dog_Calc_Image (
|
||||||
id_dog INT NOT NULL
|
id_dog INT NOT NULL
|
||||||
, name VARCHAR(250)
|
|
||||||
, appearance VARCHAR(1000)
|
|
||||||
, mass_kg DECIMAL(7, 3)
|
|
||||||
, notes TEXT
|
|
||||||
, active BIT
|
, active BIT
|
||||||
|
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
@@ -179,6 +218,8 @@ BEGIN
|
|||||||
CREATE TEMPORARY TABLE tmp_Image_Calc_Image (
|
CREATE TEMPORARY TABLE tmp_Image_Calc_Image (
|
||||||
id_image INT NOT NULL
|
id_image INT NOT NULL
|
||||||
, id_file_type INT NOT NULL
|
, id_file_type INT NOT NULL
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -207,6 +248,172 @@ BEGIN
|
|||||||
SET v_has_filter_image_id = CASE WHEN a_ids_image <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_image_id = CASE WHEN a_ids_image <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_image_name = CASE WHEN a_names_image <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_image_name = CASE WHEN a_names_image <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_Image t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_Image (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and Images.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_Image (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_Image;
|
||||||
|
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error_Calc_Image t_ERROR;
|
||||||
|
SELECT * FROM tmp_Msg_Error_Calc_Image t_ERROR;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- File Types
|
-- File Types
|
||||||
IF v_has_filter_file_type_id = 1 THEN
|
IF v_has_filter_file_type_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_file_type, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_file_type, ',', a_debug);
|
||||||
@@ -286,72 +493,6 @@ BEGIN
|
|||||||
ELSEIF EXISTS ()
|
ELSEIF EXISTS ()
|
||||||
*/
|
*/
|
||||||
ELSE
|
ELSE
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'File_Type Filters';
|
|
||||||
WITH
|
|
||||||
File_Type_Id_Filter AS (
|
|
||||||
SELECT FILE_TYPES.id_file_type
|
|
||||||
FROM tmp_Split_Id_Calc_Image t_SPLIT_ID
|
|
||||||
INNER JOIN fetchmetrics.CORE_File_Type FILE_TYPES ON t_SPLIT_ID.as_int = FILE_TYPES.id_file_type
|
|
||||||
)
|
|
||||||
, File_Type_Name_Filter AS (
|
|
||||||
SELECT FILE_TYPES.id_file_type
|
|
||||||
FROM tmp_Split_Name_Calc_Image t_SPLIT_NAME
|
|
||||||
INNER JOIN fetchmetrics.CORE_File_Type FILE_TYPES ON FILE_TYPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
|
||||||
)
|
|
||||||
, File_Type_Filters AS (
|
|
||||||
SELECT
|
|
||||||
FILE_TYPES_COMBINED.id_file_type
|
|
||||||
, MAX(FILE_TYPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
|
||||||
, MAX(FILE_TYPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
FILE_TYPES_ID_FILTER.id_file_type
|
|
||||||
, 1 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
FROM File_Type_Id_Filter FILE_TYPES_ID_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
FILE_TYPES_NAME_FILTER.id_file_type
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 1 AS does_meet_name_filter
|
|
||||||
FROM File_Type_Name_Filter FILE_TYPES_NAME_FILTER
|
|
||||||
) FILE_TYPES_COMBINED
|
|
||||||
GROUP BY FILE_TYPES_COMBINED.id_file_type
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
FILE_TYPES.id_file_type
|
|
||||||
, CASE WHEN
|
|
||||||
v_has_filter_file_type_id = 0
|
|
||||||
OR FILE_TYPES_FILTERS.does_meet_id_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
|
||||||
, CASE WHEN
|
|
||||||
(
|
|
||||||
v_has_filter_file_type_name = 0
|
|
||||||
)
|
|
||||||
OR FILE_TYPES_FILTERS.does_meet_name_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
|
||||||
FROM fetchmetrics.CORE_File_Type FILE_TYPES
|
|
||||||
LEFT JOIN File_Type_Filters FILE_TYPES_FILTERS ON FILE_TYPES.id_file_type = FILE_TYPES_FILTERS.id_file_type
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_file_type = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_file_type_id = 1
|
|
||||||
AND FILE_TYPES_FILTERS.does_meet_id_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_file_type_name = 1
|
|
||||||
AND FILE_TYPES_FILTERS.does_meet_name_filter = 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_file_type = 1
|
|
||||||
OR FILE_TYPES.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
INSERT INTO tmp_File_Type_Calc_Image (
|
INSERT INTO tmp_File_Type_Calc_Image (
|
||||||
id_file_type
|
id_file_type
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
@@ -439,6 +580,11 @@ BEGIN
|
|||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -448,13 +594,18 @@ BEGIN
|
|||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_dog(
|
CALL fetchmetrics.p_dog_calc_dog (
|
||||||
a_guid -- a_guid
|
a_guid -- a_guid
|
||||||
, a_id_user -- a_id_user
|
, a_id_user -- a_id_user
|
||||||
, a_get_all_dog -- a_get_all_dog
|
, a_get_all_dog -- a_get_all_dog
|
||||||
, a_get_inactive_dog -- a_get_inactive_dog
|
, a_get_inactive_dog -- a_get_inactive_dog
|
||||||
, a_ids_dog -- a_ids_dog
|
, a_ids_dog -- a_ids_dog
|
||||||
, a_names_dog -- a_names_dog
|
, a_names_dog -- a_names_dog
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -465,10 +616,6 @@ BEGIN
|
|||||||
|
|
||||||
INSERT INTO tmp_Dog_Calc_Image (
|
INSERT INTO tmp_Dog_Calc_Image (
|
||||||
id_dog
|
id_dog
|
||||||
, name
|
|
||||||
, appearance
|
|
||||||
, mass_kg
|
|
||||||
, notes
|
|
||||||
, active
|
, active
|
||||||
|
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
@@ -476,10 +623,6 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DOG_T.id_dog
|
DOG_T.id_dog
|
||||||
, DOG_T.name
|
|
||||||
, DOG_T.appearance
|
|
||||||
, DOG_T.mass_kg
|
|
||||||
, DOG_T.notes
|
|
||||||
, DOG_T.active
|
, DOG_T.active
|
||||||
|
|
||||||
, DOG_T.does_meet_id_filters
|
, DOG_T.does_meet_id_filters
|
||||||
@@ -575,6 +718,9 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Image_Calc_Image (
|
INSERT INTO tmp_Image_Calc_Image (
|
||||||
id_image
|
id_image
|
||||||
|
, id_file_type
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
@@ -612,8 +758,55 @@ BEGIN
|
|||||||
) IMAGES_COMBINED
|
) IMAGES_COMBINED
|
||||||
GROUP BY IMAGES_COMBINED.id_image
|
GROUP BY IMAGES_COMBINED.id_image
|
||||||
)
|
)
|
||||||
|
, Image_Access AS (
|
||||||
|
SELECT
|
||||||
|
IMAGES.id_image
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY IMAGES.id_image
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_image
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Image IMAGES
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Image_User_Link IMAGES_USER_LINK
|
||||||
|
ON IMAGES.id_image = IMAGES_USER_LINK.id_image
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_image = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR IMAGES_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Image t_USER
|
||||||
|
ON IMAGES_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON IMAGES_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
IMAGES.id_image
|
IMAGES.id_image
|
||||||
|
, IMAGES.id_file_type
|
||||||
|
, IFNULL(IMAGES_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, IMAGES_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_image_id = 0
|
v_has_filter_image_id = 0
|
||||||
OR IFNULL(IMAGES_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(IMAGES_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
@@ -628,6 +821,9 @@ BEGIN
|
|||||||
INNER JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
INNER JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
||||||
LEFT JOIN tmp_Dog_Calc_Image t_DOG ON IMAGES.id_dog = t_DOG.id_dog
|
LEFT JOIN tmp_Dog_Calc_Image t_DOG ON IMAGES.id_dog = t_DOG.id_dog
|
||||||
LEFT JOIN Image_Filters IMAGES_FILTERS ON IMAGES.id_image = IMAGES_FILTERS.id_image
|
LEFT JOIN Image_Filters IMAGES_FILTERS ON IMAGES.id_image = IMAGES_FILTERS.id_image
|
||||||
|
LEFT JOIN Image_Access IMAGES_ACCESS
|
||||||
|
ON IMAGES.id_image = IMAGES_ACCESS.id_image
|
||||||
|
AND IMAGES_ACCESS.index_link_in_image = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_image = 1
|
a_get_all_image = 1
|
||||||
@@ -640,6 +836,7 @@ BEGIN
|
|||||||
AND IMAGES_FILTERS.does_meet_name_filter = 1
|
AND IMAGES_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(IMAGES_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_image = 1
|
a_get_inactive_image = 1
|
||||||
OR IMAGES.active = 1
|
OR IMAGES.active = 1
|
||||||
@@ -661,12 +858,17 @@ BEGIN
|
|||||||
DELETE t_IMAGES
|
DELETE t_IMAGES
|
||||||
FROM tmp_Image_Calc_Image t_IMAGES
|
FROM tmp_Image_Calc_Image t_IMAGES
|
||||||
LEFT JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON t_IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
LEFT JOIN tmp_File_Type_Calc_Image t_FILE_TYPE ON t_IMAGES.id_file_type = t_FILE_TYPE.id_file_type
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Image t_USER ON t_IMAGES.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_IMAGES.does_meet_id_filters = 0
|
t_IMAGES.does_meet_id_filters = 0
|
||||||
OR IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
OR IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
||||||
|
OR (
|
||||||
|
t_IMAGES.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
@@ -674,17 +876,29 @@ BEGIN
|
|||||||
AND (
|
AND (
|
||||||
t_IMAGES.does_meet_non_id_filters = 0
|
t_IMAGES.does_meet_non_id_filters = 0
|
||||||
OR IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
OR IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
||||||
|
OR (
|
||||||
|
t_IMAGES.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_IMAGES.does_meet_id_filters = 0
|
AND t_IMAGES.does_meet_id_filters = 0
|
||||||
AND IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
AND IFNULL(t_FILE_TYPE.does_meet_id_filters, 0) = 0
|
||||||
|
AND (
|
||||||
|
t_IMAGES.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_IMAGES.does_meet_non_id_filters = 0
|
AND t_IMAGES.does_meet_non_id_filters = 0
|
||||||
AND IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
AND IFNULL(t_FILE_TYPE.does_meet_non_id_filters, 0) = 0
|
||||||
|
AND (
|
||||||
|
t_IMAGES.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -696,80 +910,6 @@ BEGIN
|
|||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_Image t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Image (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Images.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
@@ -841,8 +981,11 @@ BEGIN
|
|||||||
IF a_debug = 1 AND v_can_view = 1 THEN
|
IF a_debug = 1 AND v_can_view = 1 THEN
|
||||||
SELECT * FROM tmp_Image_Calc_Image;
|
SELECT * FROM tmp_Image_Calc_Image;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 );
|
CALL fetchmetrics.p_dog_clear_calc_dog (
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- debug
|
||||||
|
);
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Image;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Image;
|
||||||
@@ -850,6 +993,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Image_Calc_Image;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Dog_Calc_Image;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
DROP TEMPORARY TABLE IF EXISTS tmp_File_Type_Calc_Image;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Image;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -860,6 +1004,12 @@ DELIMITER ;
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
SELECT *
|
||||||
|
FROM fetchmetrics.DOG_Image
|
||||||
|
;
|
||||||
|
SELECT *
|
||||||
|
FROM fetchmetrics.DOG_Image_User_Link
|
||||||
|
;
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_image (
|
CALL fetchmetrics.p_dog_calc_image (
|
||||||
'grope ' -- a_guid
|
'grope ' -- a_guid
|
||||||
@@ -876,6 +1026,11 @@ CALL fetchmetrics.p_dog_calc_image (
|
|||||||
, 0 -- a_get_inactive_image
|
, 0 -- a_get_inactive_image
|
||||||
, '' -- a_ids_image
|
, '' -- a_ids_image
|
||||||
, '' -- a_names_image
|
, '' -- a_names_image
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -18,6 +18,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_image (
|
|||||||
, IN a_get_inactive_image BIT
|
, IN a_get_inactive_image BIT
|
||||||
, IN a_ids_image TEXT
|
, IN a_ids_image TEXT
|
||||||
, IN a_names_image TEXT
|
, IN a_names_image TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -32,9 +37,14 @@ BEGIN
|
|||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(200);
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -90,9 +100,17 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_ids_permission_required := (SELECT CONCAT(
|
||||||
|
CONVERT(v_id_permission_dog_view, CHAR)
|
||||||
|
, ','
|
||||||
|
, CONVERT(v_id_permission_command_view, CHAR)
|
||||||
|
));
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
/*
|
/*
|
||||||
SET a_get_all_file_type := IFNULL(a_get_all_file_type, 0);
|
SET a_get_all_file_type := IFNULL(a_get_all_file_type, 0);
|
||||||
@@ -142,7 +160,9 @@ BEGIN
|
|||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
, v_guid
|
, v_guid
|
||||||
|
, v_id_permission_command_view
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
|
, v_ids_permission_required
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -183,7 +203,7 @@ BEGIN
|
|||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
, v_id_permission_dog_view -- ids_permission
|
, v_ids_permission_required -- ids_permission
|
||||||
, v_id_access_level_view -- ids_access_level
|
, v_id_access_level_view -- ids_access_level
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
@@ -202,7 +222,7 @@ BEGIN
|
|||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
, v_id_permission_dog_view -- ids_permission
|
, v_ids_permission_required -- ids_permission
|
||||||
, v_id_access_level_view -- ids_access_level
|
, v_id_access_level_view -- ids_access_level
|
||||||
, 0 -- a_show_errors
|
, 0 -- a_show_errors
|
||||||
, 0 -- a_debug
|
, 0 -- a_debug
|
||||||
@@ -210,15 +230,20 @@ BEGIN
|
|||||||
|
|
||||||
SELECT
|
SELECT
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
INTO
|
INTO
|
||||||
v_can_view
|
v_can_view
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
, v_is_super_user
|
||||||
WHERE CALC_USER_T.GUID = v_guid
|
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = V_GUID
|
||||||
LIMIT 1
|
LIMIT 1
|
||||||
;
|
;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT v_can_view;
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
||||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
SELECT * FROM tmp_Msg_Error t_ERROR;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -265,6 +290,11 @@ BEGIN
|
|||||||
, a_get_inactive_image -- a_get_inactive_image
|
, a_get_inactive_image -- a_get_inactive_image
|
||||||
, a_ids_image -- a_ids_image
|
, a_ids_image -- a_ids_image
|
||||||
, a_names_image -- a_names_image
|
, a_names_image -- a_names_image
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -289,6 +319,11 @@ BEGIN
|
|||||||
, a_get_inactive_image -- a_get_inactive_image
|
, a_get_inactive_image -- a_get_inactive_image
|
||||||
, a_ids_image -- a_ids_image
|
, a_ids_image -- a_ids_image
|
||||||
, a_names_image -- a_names_image
|
, a_names_image -- a_names_image
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -416,6 +451,11 @@ CALL fetchmetrics.p_dog_get_many_image (
|
|||||||
, 0 -- a_get_inactive_image
|
, 0 -- a_get_inactive_image
|
||||||
, '' -- a_ids_image
|
, '' -- a_ids_image
|
||||||
, '' -- a_names_image
|
, '' -- a_names_image
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -439,6 +479,11 @@ CALL fetchmetrics.p_dog_get_many_image (
|
|||||||
, 0 -- a_get_inactive_image
|
, 0 -- a_get_inactive_image
|
||||||
, '' -- a_ids_image
|
, '' -- a_ids_image
|
||||||
, 'pat,point' -- a_names_image
|
, 'pat,point' -- a_names_image
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, 'pat,point' -- a_names_user
|
||||||
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_distraction_type (
|
|||||||
, IN a_get_inactive_distraction_type BIT
|
, IN a_get_inactive_distraction_type BIT
|
||||||
, IN a_ids_distraction_type TEXT
|
, IN a_ids_distraction_type TEXT
|
||||||
, IN a_names_distraction_type TEXT
|
, IN a_names_distraction_type TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -29,6 +34,9 @@ BEGIN
|
|||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -85,7 +93,9 @@ BEGIN
|
|||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -109,6 +119,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_type
|
, a_get_inactive_distraction_type
|
||||||
, a_ids_distraction_type
|
, a_ids_distraction_type
|
||||||
, a_names_distraction_type
|
, a_names_distraction_type
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -129,9 +144,30 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Distraction_Type (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Distraction_Type_Calc_Distraction_Type (
|
CREATE TEMPORARY TABLE tmp_Distraction_Type_Calc_Distraction_Type (
|
||||||
id_type INT NOT NULL
|
id_type INT NOT NULL
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -158,6 +194,169 @@ BEGIN
|
|||||||
SET v_has_filter_distraction_type_id = CASE WHEN a_ids_distraction_type <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_distraction_type_id = CASE WHEN a_ids_distraction_type <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_distraction_type_name = CASE WHEN a_names_distraction_type <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_distraction_type_name = CASE WHEN a_names_distraction_type <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.guid = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_Distraction_Type t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_Distraction_Type (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and Distraction_Types.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_id_permission_dog_view -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_Distraction_Type (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Distraction_Types
|
-- Distraction_Types
|
||||||
IF v_has_filter_distraction_type_id = 1 THEN
|
IF v_has_filter_distraction_type_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_type, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_type, ',', a_debug);
|
||||||
@@ -205,12 +404,12 @@ BEGIN
|
|||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(DISTRACTION_TYPES.id_type)
|
OR ISNULL(DISTRACTION_TYPE.id_type)
|
||||||
OR (
|
OR (
|
||||||
DISTRACTION_TYPES.active = 0
|
DISTRACTION_TYPE.active = 0
|
||||||
AND a_get_inactive_distraction_type = 0
|
AND a_get_inactive_distraction_type = 0
|
||||||
)
|
)
|
||||||
) THEN
|
) THEN
|
||||||
@@ -224,12 +423,12 @@ BEGIN
|
|||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive Distraction_Type IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive Distraction_Type IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
LEFT JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(DISTRACTION_TYPES.id_type)
|
OR ISNULL(DISTRACTION_TYPE.id_type)
|
||||||
OR (
|
OR (
|
||||||
DISTRACTION_TYPES.active = 0
|
DISTRACTION_TYPE.active = 0
|
||||||
AND a_get_inactive_distraction_type = 0
|
AND a_get_inactive_distraction_type = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@@ -239,70 +438,122 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Distraction_Type_Calc_Distraction_Type (
|
INSERT INTO tmp_Distraction_Type_Calc_Distraction_Type (
|
||||||
id_type
|
id_type
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
WITH
|
WITH
|
||||||
Distraction_Type_Id_Filter AS (
|
Distraction_Type_Id_Filter AS (
|
||||||
SELECT DISTRACTION_TYPES.id_type
|
SELECT DISTRACTION_TYPE.id_type
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Type t_SPLIT_ID
|
||||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON t_SPLIT_ID.as_int = DISTRACTION_TYPES.id_type
|
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON t_SPLIT_ID.as_int = DISTRACTION_TYPE.id_type
|
||||||
)
|
)
|
||||||
, Distraction_Type_Name_Filter AS (
|
, Distraction_Type_Name_Filter AS (
|
||||||
SELECT DISTRACTION_TYPES.id_type
|
SELECT DISTRACTION_TYPE.id_type
|
||||||
FROM tmp_Split_Name_Calc_Distraction_Type t_SPLIT_NAME
|
FROM tmp_Split_Name_Calc_Distraction_Type t_SPLIT_NAME
|
||||||
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES ON DISTRACTION_TYPES.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
INNER JOIN fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE ON DISTRACTION_TYPE.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||||
)
|
)
|
||||||
, Distraction_Type_Filters AS (
|
, Distraction_Type_Filters AS (
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_TYPES_COMBINED.id_type
|
DISTRACTION_TYPE_COMBINED.id_type
|
||||||
, MAX(DISTRACTION_TYPES_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
, MAX(DISTRACTION_TYPE_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
, MAX(DISTRACTION_TYPES_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
, MAX(DISTRACTION_TYPE_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_TYPES_ID_FILTER.id_type
|
DISTRACTION_TYPE_ID_FILTER.id_type
|
||||||
, 1 AS does_meet_id_filter
|
, 1 AS does_meet_id_filter
|
||||||
, 0 AS does_meet_name_filter
|
, 0 AS does_meet_name_filter
|
||||||
FROM Distraction_Type_Id_Filter DISTRACTION_TYPES_ID_FILTER
|
FROM Distraction_Type_Id_Filter DISTRACTION_TYPE_ID_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_TYPES_NAME_FILTER.id_type
|
DISTRACTION_TYPE_NAME_FILTER.id_type
|
||||||
, 0 AS does_meet_id_filter
|
, 0 AS does_meet_id_filter
|
||||||
, 1 AS does_meet_name_filter
|
, 1 AS does_meet_name_filter
|
||||||
FROM Distraction_Type_Name_Filter DISTRACTION_TYPES_NAME_FILTER
|
FROM Distraction_Type_Name_Filter DISTRACTION_TYPE_NAME_FILTER
|
||||||
) DISTRACTION_TYPES_COMBINED
|
) DISTRACTION_TYPE_COMBINED
|
||||||
GROUP BY DISTRACTION_TYPES_COMBINED.id_type
|
GROUP BY DISTRACTION_TYPE_COMBINED.id_type
|
||||||
|
)
|
||||||
|
, Distraction_Type_Access AS (
|
||||||
|
SELECT
|
||||||
|
DISTRACTION_TYPE.id_type
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY DISTRACTION_TYPE.id_type
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_distraction_type
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Distraction_Type_User_Link DISTRACTION_TYPE_USER_LINK
|
||||||
|
ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_USER_LINK.id_distraction_type
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_distraction_type = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR DISTRACTION_TYPE_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Type t_USER
|
||||||
|
ON DISTRACTION_TYPE_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON DISTRACTION_TYPE_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_TYPES.id_type
|
DISTRACTION_TYPE.id_type
|
||||||
|
, IFNULL(DISTRACTION_TYPE_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, DISTRACTION_TYPE_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_distraction_type_id = 0
|
v_has_filter_distraction_type_id = 0
|
||||||
OR IFNULL(DISTRACTION_TYPES_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(DISTRACTION_TYPE_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
(
|
(
|
||||||
v_has_filter_distraction_type_name = 0
|
v_has_filter_distraction_type_name = 0
|
||||||
)
|
)
|
||||||
OR IFNULL(DISTRACTION_TYPES_FILTERS.does_meet_name_filter, 0) = 1
|
OR IFNULL(DISTRACTION_TYPE_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES
|
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||||
LEFT JOIN Distraction_Type_Filters DISTRACTION_TYPES_FILTERS ON DISTRACTION_TYPES.id_type = DISTRACTION_TYPES_FILTERS.id_type
|
LEFT JOIN Distraction_Type_Filters DISTRACTION_TYPE_FILTERS ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_FILTERS.id_type
|
||||||
|
LEFT JOIN Distraction_Type_Access DISTRACTION_TYPE_ACCESS
|
||||||
|
ON DISTRACTION_TYPE.id_type = DISTRACTION_TYPE_ACCESS.id_type
|
||||||
|
AND DISTRACTION_TYPE_ACCESS.index_link_in_distraction_type = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_distraction_type = 1
|
a_get_all_distraction_type = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_distraction_type_id = 1
|
v_has_filter_distraction_type_id = 1
|
||||||
AND DISTRACTION_TYPES_FILTERS.does_meet_id_filter = 1
|
AND DISTRACTION_TYPE_FILTERS.does_meet_id_filter = 1
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_distraction_type_name = 1
|
v_has_filter_distraction_type_name = 1
|
||||||
AND DISTRACTION_TYPES_FILTERS.does_meet_name_filter = 1
|
AND DISTRACTION_TYPE_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(DISTRACTION_TYPE_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_distraction_type = 1
|
a_get_inactive_distraction_type = 1
|
||||||
OR DISTRACTION_TYPES.active = 1
|
OR DISTRACTION_TYPE.active = 1
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -318,28 +569,45 @@ BEGIN
|
|||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Type t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Type t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
DELETE t_DISTRACTION_TYPES
|
DELETE t_DISTRACTION_TYPE
|
||||||
FROM tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPES
|
FROM tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPE
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Type t_USER ON t_DISTRACTION_TYPE.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_DISTRACTION_TYPES.does_meet_id_filters = 0
|
t_DISTRACTION_TYPE.does_meet_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_DISTRACTION_TYPES.does_meet_non_id_filters = 0
|
t_DISTRACTION_TYPE.does_meet_non_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_DISTRACTION_TYPES.does_meet_id_filters = 0
|
AND t_DISTRACTION_TYPE.does_meet_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_DISTRACTION_TYPES.does_meet_non_id_filters = 0
|
AND t_DISTRACTION_TYPE.does_meet_non_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_DISTRACTION_TYPE.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -351,80 +619,6 @@ BEGIN
|
|||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_Distraction_Type t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Type (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Distraction_Types.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
@@ -459,16 +653,16 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, t_DISTRACTION_TYPES.id_type
|
, t_DISTRACTION_TYPE.id_type
|
||||||
, DISTRACTION_TYPES.code
|
, DISTRACTION_TYPE.code
|
||||||
, DISTRACTION_TYPES.name
|
, DISTRACTION_TYPE.name
|
||||||
, DISTRACTION_TYPES.active
|
, DISTRACTION_TYPE.active
|
||||||
|
|
||||||
, t_DISTRACTION_TYPES.does_meet_id_filters
|
, t_DISTRACTION_TYPE.does_meet_id_filters
|
||||||
, t_DISTRACTION_TYPES.does_meet_non_id_filters
|
, t_DISTRACTION_TYPE.does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPES
|
FROM fetchmetrics.DOG_Distraction_Type DISTRACTION_TYPE
|
||||||
INNER JOIN tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPES ON DISTRACTION_TYPES.id_type = t_DISTRACTION_TYPES.id_type
|
INNER JOIN tmp_Distraction_Type_Calc_Distraction_Type t_DISTRACTION_TYPE ON DISTRACTION_TYPE.id_type = t_DISTRACTION_TYPE.id_type
|
||||||
ORDER BY DISTRACTION_TYPES.name
|
ORDER BY DISTRACTION_TYPE.name
|
||||||
;
|
;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@@ -499,6 +693,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Type;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Type;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Type_Calc_Distraction_Type;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Type;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -517,6 +712,11 @@ CALL fetchmetrics.p_dog_calc_distraction_type (
|
|||||||
, 0 -- a_get_inactive_distraction_type
|
, 0 -- a_get_inactive_distraction_type
|
||||||
, '' -- a_ids_distraction_type
|
, '' -- a_ids_distraction_type
|
||||||
, '' -- a_names_distraction_type
|
, '' -- a_names_distraction_type
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_distraction_type (
|
|||||||
, IN a_get_inactive_distraction_type BIT
|
, IN a_get_inactive_distraction_type BIT
|
||||||
, IN a_ids_distraction_type TEXT
|
, IN a_ids_distraction_type TEXT
|
||||||
, IN a_names_distraction_type TEXT
|
, IN a_names_distraction_type TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -104,6 +109,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_type
|
, a_get_inactive_distraction_type
|
||||||
, a_ids_distraction_type
|
, a_ids_distraction_type
|
||||||
, a_names_distraction_type
|
, a_names_distraction_type
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -228,6 +238,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
||||||
, a_ids_distraction_type -- a_ids_distraction_type
|
, a_ids_distraction_type -- a_ids_distraction_type
|
||||||
, a_names_distraction_type -- a_names_distraction_type
|
, a_names_distraction_type -- a_names_distraction_type
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -244,6 +259,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
, a_get_inactive_distraction_type -- a_get_inactive_distraction_type
|
||||||
, a_ids_distraction_type -- a_ids_distraction_type
|
, a_ids_distraction_type -- a_ids_distraction_type
|
||||||
, a_names_distraction_type -- a_names_distraction_type
|
, a_names_distraction_type -- a_names_distraction_type
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -351,6 +371,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_type (
|
|||||||
, 0 -- a_get_inactive_distraction_type
|
, 0 -- a_get_inactive_distraction_type
|
||||||
, '' -- a_ids_distraction_type
|
, '' -- a_ids_distraction_type
|
||||||
, '' -- a_names_distraction_type
|
, '' -- a_names_distraction_type
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -365,6 +390,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_type (
|
|||||||
, 0 -- a_get_inactive_distraction_type
|
, 0 -- a_get_inactive_distraction_type
|
||||||
, '' -- a_ids_distraction_type
|
, '' -- a_ids_distraction_type
|
||||||
, 'pat,point' -- a_names_distraction_type
|
, 'pat,point' -- a_names_distraction_type
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, 'pat,point' -- a_names_user
|
||||||
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_distraction_intensity_level (
|
|||||||
, IN a_get_inactive_distraction_intensity_level BIT
|
, IN a_get_inactive_distraction_intensity_level BIT
|
||||||
, IN a_ids_distraction_intensity_level TEXT
|
, IN a_ids_distraction_intensity_level TEXT
|
||||||
, IN a_names_distraction_intensity_level TEXT
|
, IN a_names_distraction_intensity_level TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -26,9 +31,14 @@ BEGIN
|
|||||||
DECLARE v_has_filter_distraction_intensity_level_name BIT;
|
DECLARE v_has_filter_distraction_intensity_level_name BIT;
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(200);
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -61,19 +71,21 @@ BEGIN
|
|||||||
WHERE MET.code = 'MYSQL_ERROR'
|
WHERE MET.code = 'MYSQL_ERROR'
|
||||||
;
|
;
|
||||||
|
|
||||||
SELECT
|
IF a_show_errors = 1 THEN
|
||||||
t_ERROR.id_error
|
SELECT
|
||||||
, t_ERROR.id_type
|
t_ERROR.id_error
|
||||||
, t_ERROR.code
|
, t_ERROR.id_type
|
||||||
, ERROR_TYPE.name
|
, t_ERROR.code
|
||||||
, ERROR_TYPE.description
|
, ERROR_TYPE.name
|
||||||
, ERROR_TYPE.is_breaking_error
|
, ERROR_TYPE.description
|
||||||
, ERROR_TYPE.background_colour
|
, ERROR_TYPE.is_breaking_error
|
||||||
, ERROR_TYPE.text_colour
|
, ERROR_TYPE.background_colour
|
||||||
, t_ERROR.msg
|
, ERROR_TYPE.text_colour
|
||||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR
|
, t_ERROR.msg
|
||||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR
|
||||||
;
|
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||||
END;
|
END;
|
||||||
@@ -83,9 +95,17 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_ids_permission_required := (SELECT CONCAT(
|
||||||
|
CONVERT(v_id_permission_dog_view, CHAR)
|
||||||
|
, ','
|
||||||
|
, CONVERT(v_id_permission_command_view, CHAR)
|
||||||
|
));
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -109,6 +129,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_intensity_level
|
, a_get_inactive_distraction_intensity_level
|
||||||
, a_ids_distraction_intensity_level
|
, a_ids_distraction_intensity_level
|
||||||
, a_names_distraction_intensity_level
|
, a_names_distraction_intensity_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -120,7 +145,9 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
|
, v_id_permission_command_view
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
|
, v_ids_permission_required
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -129,9 +156,30 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Distraction_Intensity_Level (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
CREATE TEMPORARY TABLE tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
||||||
id_intensity_level INT NOT NULL
|
id_intensity_level INT NOT NULL
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -158,7 +206,171 @@ BEGIN
|
|||||||
SET v_has_filter_distraction_intensity_level_id = CASE WHEN a_ids_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_distraction_intensity_level_id = CASE WHEN a_ids_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_distraction_intensity_level_name = CASE WHEN a_names_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_distraction_intensity_level_name = CASE WHEN a_names_distraction_intensity_level <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
-- Distraction_Intensity_Levels
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.guid = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_Distraction_Intensity_Level (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and DISTRACTION_INTENSITY_LEVEL.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_Distraction_Intensity_Level (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- DISTRACTION_INTENSITY_LEVEL
|
||||||
IF v_has_filter_distraction_intensity_level_id = 1 THEN
|
IF v_has_filter_distraction_intensity_level_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_intensity_level, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_distraction_intensity_level, ',', a_debug);
|
||||||
|
|
||||||
@@ -205,12 +417,12 @@ BEGIN
|
|||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(DISTRACTION_INTENSITY_LEVELS.id_intensity_level)
|
OR ISNULL(DISTRACTION_INTENSITY_LEVEL.id_intensity_level)
|
||||||
OR (
|
OR (
|
||||||
DISTRACTION_INTENSITY_LEVELS.active = 0
|
DISTRACTION_INTENSITY_LEVEL.active = 0
|
||||||
AND a_get_inactive_distraction_intensity_level = 0
|
AND a_get_inactive_distraction_intensity_level = 0
|
||||||
)
|
)
|
||||||
) THEN
|
) THEN
|
||||||
@@ -224,12 +436,12 @@ BEGIN
|
|||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive Distraction_Intensity_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive Distraction_Intensity_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(DISTRACTION_INTENSITY_LEVELS.id_intensity_level)
|
OR ISNULL(DISTRACTION_INTENSITY_LEVEL.id_intensity_level)
|
||||||
OR (
|
OR (
|
||||||
DISTRACTION_INTENSITY_LEVELS.active = 0
|
DISTRACTION_INTENSITY_LEVEL.active = 0
|
||||||
AND a_get_inactive_distraction_intensity_level = 0
|
AND a_get_inactive_distraction_intensity_level = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@@ -239,70 +451,122 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
INSERT INTO tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level (
|
||||||
id_intensity_level
|
id_intensity_level
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
WITH
|
WITH
|
||||||
Distraction_Intensity_Level_Id_Filter AS (
|
Distraction_Intensity_Level_Id_Filter AS (
|
||||||
SELECT DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
SELECT DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Distraction_Intensity_Level t_SPLIT_ID
|
||||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON t_SPLIT_ID.as_int = DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
)
|
)
|
||||||
, Distraction_Intensity_Level_Name_Filter AS (
|
, Distraction_Intensity_Level_Name_Filter AS (
|
||||||
SELECT DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
SELECT DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
FROM tmp_Split_Name_Calc_Distraction_Intensity_Level t_SPLIT_NAME
|
FROM tmp_Split_Name_Calc_Distraction_Intensity_Level t_SPLIT_NAME
|
||||||
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS ON DISTRACTION_INTENSITY_LEVELS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
INNER JOIN fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL ON DISTRACTION_INTENSITY_LEVEL.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||||
)
|
)
|
||||||
, Distraction_Intensity_Level_Filters AS (
|
, Distraction_Intensity_Level_Filters AS (
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_INTENSITY_LEVELS_COMBINED.id_intensity_level
|
DISTRACTION_INTENSITY_LEVEL_COMBINED.id_intensity_level
|
||||||
, MAX(DISTRACTION_INTENSITY_LEVELS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
, MAX(DISTRACTION_INTENSITY_LEVEL_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
, MAX(DISTRACTION_INTENSITY_LEVELS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
, MAX(DISTRACTION_INTENSITY_LEVEL_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_INTENSITY_LEVELS_ID_FILTER.id_intensity_level
|
DISTRACTION_INTENSITY_LEVEL_ID_FILTER.id_intensity_level
|
||||||
, 1 AS does_meet_id_filter
|
, 1 AS does_meet_id_filter
|
||||||
, 0 AS does_meet_name_filter
|
, 0 AS does_meet_name_filter
|
||||||
FROM Distraction_Intensity_Level_Id_Filter DISTRACTION_INTENSITY_LEVELS_ID_FILTER
|
FROM Distraction_Intensity_Level_Id_Filter DISTRACTION_INTENSITY_LEVEL_ID_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_INTENSITY_LEVELS_NAME_FILTER.id_intensity_level
|
DISTRACTION_INTENSITY_LEVEL_NAME_FILTER.id_intensity_level
|
||||||
, 0 AS does_meet_id_filter
|
, 0 AS does_meet_id_filter
|
||||||
, 1 AS does_meet_name_filter
|
, 1 AS does_meet_name_filter
|
||||||
FROM Distraction_Intensity_Level_Name_Filter DISTRACTION_INTENSITY_LEVELS_NAME_FILTER
|
FROM Distraction_Intensity_Level_Name_Filter DISTRACTION_INTENSITY_LEVEL_NAME_FILTER
|
||||||
) DISTRACTION_INTENSITY_LEVELS_COMBINED
|
) DISTRACTION_INTENSITY_LEVEL_COMBINED
|
||||||
GROUP BY DISTRACTION_INTENSITY_LEVELS_COMBINED.id_intensity_level
|
GROUP BY DISTRACTION_INTENSITY_LEVEL_COMBINED.id_intensity_level
|
||||||
|
)
|
||||||
|
, Distraction_Intensity_Level_Access AS (
|
||||||
|
SELECT
|
||||||
|
DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_distraction_intensity_level
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Distraction_Intensity_Level_User_Link DISTRACTION_INTENSITY_LEVEL_USER_LINK
|
||||||
|
ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_USER_LINK.id_intensity_level
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_distraction_intensity_level = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR DISTRACTION_INTENSITY_LEVEL_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Intensity_Level t_USER
|
||||||
|
ON DISTRACTION_INTENSITY_LEVEL_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON DISTRACTION_INTENSITY_LEVEL_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
|
, IFNULL(DISTRACTION_INTENSITY_LEVEL_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, DISTRACTION_INTENSITY_LEVEL_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_distraction_intensity_level_id = 0
|
v_has_filter_distraction_intensity_level_id = 0
|
||||||
OR IFNULL(DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
(
|
(
|
||||||
v_has_filter_distraction_intensity_level_name = 0
|
v_has_filter_distraction_intensity_level_name = 0
|
||||||
)
|
)
|
||||||
OR IFNULL(DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_name_filter, 0) = 1
|
OR IFNULL(DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS
|
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||||
LEFT JOIN Distraction_Intensity_Level_Filters DISTRACTION_INTENSITY_LEVELS_FILTERS ON DISTRACTION_INTENSITY_LEVELS.id_intensity_level = DISTRACTION_INTENSITY_LEVELS_FILTERS.id_intensity_level
|
LEFT JOIN Distraction_Intensity_Level_Filters DISTRACTION_INTENSITY_LEVEL_FILTERS ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_FILTERS.id_intensity_level
|
||||||
|
LEFT JOIN Distraction_Intensity_Level_Access DISTRACTION_INTENSITY_LEVEL_ACCESS
|
||||||
|
ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = DISTRACTION_INTENSITY_LEVEL_ACCESS.id_intensity_level
|
||||||
|
AND DISTRACTION_INTENSITY_LEVEL_ACCESS.index_link_in_distraction_intensity_level = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_distraction_intensity_level = 1
|
a_get_all_distraction_intensity_level = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_distraction_intensity_level_id = 1
|
v_has_filter_distraction_intensity_level_id = 1
|
||||||
AND DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_id_filter = 1
|
AND DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_id_filter = 1
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_distraction_intensity_level_name = 1
|
v_has_filter_distraction_intensity_level_name = 1
|
||||||
AND DISTRACTION_INTENSITY_LEVELS_FILTERS.does_meet_name_filter = 1
|
AND DISTRACTION_INTENSITY_LEVEL_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(DISTRACTION_INTENSITY_LEVEL_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_distraction_intensity_level = 1
|
a_get_inactive_distraction_intensity_level = 1
|
||||||
OR DISTRACTION_INTENSITY_LEVELS.active = 1
|
OR DISTRACTION_INTENSITY_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -312,119 +576,62 @@ BEGIN
|
|||||||
DELETE FROM tmp_Split_Name_Calc_Distraction_Intensity_Level;
|
DELETE FROM tmp_Split_Name_Calc_Distraction_Intensity_Level;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'After get Distraction_Intensity_Levels ';
|
SELECT 'After get DISTRACTION_INTENSITY_LEVEL ';
|
||||||
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
DELETE t_DISTRACTION_INTENSITY_LEVELS
|
DELETE t_DISTRACTION_INTENSITY_LEVEL
|
||||||
FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVELS
|
FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVEL
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Distraction_Intensity_Level t_USER ON t_DISTRACTION_INTENSITY_LEVEL.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters = 0
|
t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters = 0
|
t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters = 0
|
AND t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters = 0
|
AND t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_DISTRACTION_INTENSITY_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'After filter Distraction_Intensity_Levels';
|
SELECT 'After filter DISTRACTION_INTENSITY_LEVEL';
|
||||||
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
SELECT * FROM tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_Distraction_Intensity_Level t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Distraction_Intensity_Level (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Distraction_Intensity_Levels.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
@@ -446,7 +653,7 @@ BEGIN
|
|||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
-- Distraction_Intensity_Levels
|
-- DISTRACTION_INTENSITY_LEVEL
|
||||||
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level_Temp (
|
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level_Temp (
|
||||||
guid
|
guid
|
||||||
, id_intensity_level
|
, id_intensity_level
|
||||||
@@ -459,16 +666,16 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, t_DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
, t_DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
, DISTRACTION_INTENSITY_LEVELS.code
|
, DISTRACTION_INTENSITY_LEVEL.code
|
||||||
, DISTRACTION_INTENSITY_LEVELS.name
|
, DISTRACTION_INTENSITY_LEVEL.name
|
||||||
, DISTRACTION_INTENSITY_LEVELS.active
|
, DISTRACTION_INTENSITY_LEVEL.active
|
||||||
|
|
||||||
, t_DISTRACTION_INTENSITY_LEVELS.does_meet_id_filters
|
, t_DISTRACTION_INTENSITY_LEVEL.does_meet_id_filters
|
||||||
, t_DISTRACTION_INTENSITY_LEVELS.does_meet_non_id_filters
|
, t_DISTRACTION_INTENSITY_LEVEL.does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVELS
|
FROM fetchmetrics.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL
|
||||||
INNER JOIN tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVELS ON DISTRACTION_INTENSITY_LEVELS.id_intensity_level = t_DISTRACTION_INTENSITY_LEVELS.id_intensity_level
|
INNER JOIN tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level t_DISTRACTION_INTENSITY_LEVEL ON DISTRACTION_INTENSITY_LEVEL.id_intensity_level = t_DISTRACTION_INTENSITY_LEVEL.id_intensity_level
|
||||||
ORDER BY DISTRACTION_INTENSITY_LEVELS.name
|
ORDER BY DISTRACTION_INTENSITY_LEVEL.name
|
||||||
;
|
;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@@ -499,6 +706,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Distraction_Intensity_Level_Calc_Distraction_Intensity_Level;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Distraction_Intensity_Level;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -517,6 +725,11 @@ CALL fetchmetrics.p_dog_calc_distraction_intensity_level (
|
|||||||
, 0 -- a_get_inactive_distraction_intensity_level
|
, 0 -- a_get_inactive_distraction_intensity_level
|
||||||
, '' -- a_ids_distraction_intensity_level
|
, '' -- a_ids_distraction_intensity_level
|
||||||
, '' -- a_names_distraction_intensity_level
|
, '' -- a_names_distraction_intensity_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
|||||||
, IN a_get_inactive_distraction_intensity_level BIT
|
, IN a_get_inactive_distraction_intensity_level BIT
|
||||||
, IN a_ids_distraction_intensity_level TEXT
|
, IN a_ids_distraction_intensity_level TEXT
|
||||||
, IN a_names_distraction_intensity_level TEXT
|
, IN a_names_distraction_intensity_level TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -81,7 +86,6 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
@@ -104,6 +108,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_intensity_level
|
, a_get_inactive_distraction_intensity_level
|
||||||
, a_ids_distraction_intensity_level
|
, a_ids_distraction_intensity_level
|
||||||
, a_names_distraction_intensity_level
|
, a_names_distraction_intensity_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -115,7 +124,6 @@ BEGIN
|
|||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
, v_guid
|
, v_guid
|
||||||
, v_id_permission_dog_view
|
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -140,82 +148,6 @@ BEGIN
|
|||||||
, msg TEXT NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = v_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
|
||||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Distraction_Intensity_Levels.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Call Distraction_Intensity_Level Calc
|
-- Call Distraction_Intensity_Level Calc
|
||||||
@@ -228,6 +160,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
||||||
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
||||||
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -244,6 +181,11 @@ BEGIN
|
|||||||
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
, a_get_inactive_distraction_intensity_level -- a_get_inactive_distraction_intensity_level
|
||||||
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
, a_ids_distraction_intensity_level -- a_ids_distraction_intensity_level
|
||||||
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
, a_names_distraction_intensity_level -- a_names_distraction_intensity_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -283,15 +225,6 @@ BEGIN
|
|||||||
SELECT * FROM tmp_Distraction_Intensity_Level;
|
SELECT * FROM tmp_Distraction_Intensity_Level;
|
||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Filter outputs
|
|
||||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT * FROM tmp_Distraction_Intensity_Level;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DELETE FROM tmp_Distraction_Intensity_Level;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
@@ -351,6 +284,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
|||||||
, 0 -- a_get_inactive_distraction_intensity_level
|
, 0 -- a_get_inactive_distraction_intensity_level
|
||||||
, '' -- a_ids_distraction_intensity_level
|
, '' -- a_ids_distraction_intensity_level
|
||||||
, '' -- a_names_distraction_intensity_level
|
, '' -- a_names_distraction_intensity_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -365,6 +303,11 @@ CALL fetchmetrics.p_dog_get_many_distraction_intensity_level (
|
|||||||
, 0 -- a_get_inactive_distraction_intensity_level
|
, 0 -- a_get_inactive_distraction_intensity_level
|
||||||
, '' -- a_ids_distraction_intensity_level
|
, '' -- a_ids_distraction_intensity_level
|
||||||
, 'pat,point' -- a_names_distraction_intensity_level
|
, 'pat,point' -- a_names_distraction_intensity_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, 'pat,point' -- a_names_user
|
||||||
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -12,7 +12,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_response_quality_metric (
|
|||||||
, IN a_ids_metric TEXT
|
, IN a_ids_metric TEXT
|
||||||
-- , IN a_ids_unit_measurement_metric TEXT
|
-- , IN a_ids_unit_measurement_metric TEXT
|
||||||
, IN a_names_metric TEXT
|
, IN a_names_metric TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -28,9 +32,14 @@ BEGIN
|
|||||||
DECLARE v_has_filter_response_quality_metric_name BIT;
|
DECLARE v_has_filter_response_quality_metric_name BIT;
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(200);
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -63,19 +72,21 @@ BEGIN
|
|||||||
WHERE MET.code = 'MYSQL_ERROR'
|
WHERE MET.code = 'MYSQL_ERROR'
|
||||||
;
|
;
|
||||||
|
|
||||||
SELECT
|
IF a_show_errors = 1 THEN
|
||||||
t_ERROR.id_error
|
SELECT
|
||||||
, t_ERROR.id_type
|
t_ERROR.id_error
|
||||||
, t_ERROR.code
|
, t_ERROR.id_type
|
||||||
, ERROR_TYPE.name
|
, t_ERROR.code
|
||||||
, ERROR_TYPE.description
|
, ERROR_TYPE.name
|
||||||
, ERROR_TYPE.is_breaking_error
|
, ERROR_TYPE.description
|
||||||
, ERROR_TYPE.background_colour
|
, ERROR_TYPE.is_breaking_error
|
||||||
, ERROR_TYPE.text_colour
|
, ERROR_TYPE.background_colour
|
||||||
, t_ERROR.msg
|
, ERROR_TYPE.text_colour
|
||||||
FROM tmp_Msg_Error_Calc_RQM t_ERROR
|
, t_ERROR.msg
|
||||||
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
FROM tmp_Msg_Error_Calc_RQM t_ERROR
|
||||||
;
|
INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
DROP TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||||
END;
|
END;
|
||||||
@@ -85,9 +96,17 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_ids_permission_required := (SELECT CONCAT(
|
||||||
|
CONVERT(v_id_permission_dog_view, CHAR)
|
||||||
|
, ','
|
||||||
|
, CONVERT(v_id_permission_command_view, CHAR)
|
||||||
|
));
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -110,7 +129,11 @@ BEGIN
|
|||||||
, a_get_inactive_metric
|
, a_get_inactive_metric
|
||||||
, a_ids_metric
|
, a_ids_metric
|
||||||
, a_names_metric
|
, a_names_metric
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_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
|
||||||
@@ -122,7 +145,9 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
|
, v_id_permission_command_view
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
|
, v_ids_permission_required
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -131,6 +156,25 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_RQM;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_RQM (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Response_Quality_Metric_Calc_RQM (
|
CREATE TEMPORARY TABLE tmp_Response_Quality_Metric_Calc_RQM (
|
||||||
id_metric INT NOT NULL
|
id_metric INT NOT NULL
|
||||||
@@ -140,6 +184,8 @@ BEGIN
|
|||||||
, value_min DOUBLE
|
, value_min DOUBLE
|
||||||
, value_max DOUBLE
|
, value_max DOUBLE
|
||||||
, active BIT
|
, active BIT
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -166,6 +212,169 @@ BEGIN
|
|||||||
SET v_has_filter_response_quality_metric_id := CASE WHEN a_ids_metric <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_response_quality_metric_id := CASE WHEN a_ids_metric <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_response_quality_metric_name := CASE WHEN a_names_metric <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_response_quality_metric_name := CASE WHEN a_names_metric <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.guid = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_RQM t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_RQM (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and Button Icons.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_RQM (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_RQM;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Response Quality Metrics
|
-- Response Quality Metrics
|
||||||
IF v_has_filter_response_quality_metric_id = 1 THEN
|
IF v_has_filter_response_quality_metric_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_metric, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_metric, ',', a_debug);
|
||||||
@@ -245,78 +454,6 @@ BEGIN
|
|||||||
ELSEIF EXISTS ()
|
ELSEIF EXISTS ()
|
||||||
*/
|
*/
|
||||||
ELSE
|
ELSE
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT 'Response_Quality_Metric Filters';
|
|
||||||
WITH
|
|
||||||
Response_Quality_Metric_Id_Filter AS (
|
|
||||||
SELECT RESPONSE_QUALITY_METRIC.id_metric
|
|
||||||
FROM tmp_Split_Id_Calc_RQM t_SPLIT_ID
|
|
||||||
INNER JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_SPLIT_ID.as_int = RESPONSE_QUALITY_METRIC.id_metric
|
|
||||||
)
|
|
||||||
, Response_Quality_Metric_Name_Filter AS (
|
|
||||||
SELECT RESPONSE_QUALITY_METRIC.id_metric
|
|
||||||
FROM tmp_Split_Name_Calc_RQM t_SPLIT_NAME
|
|
||||||
INNER JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON RESPONSE_QUALITY_METRIC.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
|
||||||
)
|
|
||||||
, Response_Quality_Metric_Filters AS (
|
|
||||||
SELECT
|
|
||||||
RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
|
||||||
, MAX(RESPONSE_QUALITY_METRIC_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
|
||||||
, MAX(RESPONSE_QUALITY_METRIC_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
|
||||||
FROM (
|
|
||||||
SELECT
|
|
||||||
RESPONSE_QUALITY_METRIC_ID_FILTER.id_metric
|
|
||||||
, 1 AS does_meet_id_filter
|
|
||||||
, 0 AS does_meet_name_filter
|
|
||||||
FROM Response_Quality_Metric_Id_Filter RESPONSE_QUALITY_METRIC_ID_FILTER
|
|
||||||
UNION
|
|
||||||
SELECT
|
|
||||||
RESPONSE_QUALITY_METRIC_NAME_FILTER.id_metric
|
|
||||||
, 0 AS does_meet_id_filter
|
|
||||||
, 1 AS does_meet_name_filter
|
|
||||||
FROM Response_Quality_Metric_Name_Filter RESPONSE_QUALITY_METRIC_NAME_FILTER
|
|
||||||
) RESPONSE_QUALITY_METRIC_COMBINED
|
|
||||||
GROUP BY RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
|
||||||
)
|
|
||||||
SELECT
|
|
||||||
RESPONSE_QUALITY_METRIC.id_metric
|
|
||||||
, RESPONSE_QUALITY_METRIC.id_unit_measurement
|
|
||||||
, RESPONSE_QUALITY_METRIC.code
|
|
||||||
, RESPONSE_QUALITY_METRIC.name
|
|
||||||
, RESPONSE_QUALITY_METRIC.value_min
|
|
||||||
, RESPONSE_QUALITY_METRIC.value_max
|
|
||||||
, RESPONSE_QUALITY_METRIC.active
|
|
||||||
, CASE WHEN
|
|
||||||
v_has_filter_response_quality_metric_id = 0
|
|
||||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
|
||||||
, CASE WHEN
|
|
||||||
(
|
|
||||||
v_has_filter_response_quality_metric_name = 0
|
|
||||||
)
|
|
||||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
|
||||||
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
|
||||||
LEFT JOIN Response_Quality_Metric_Filters RESPONSE_QUALITY_METRIC_FILTERS ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_FILTERS.id_metric
|
|
||||||
WHERE
|
|
||||||
(
|
|
||||||
a_get_all_metric = 1
|
|
||||||
OR (
|
|
||||||
v_has_filter_response_quality_metric_id = 1
|
|
||||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
|
||||||
)
|
|
||||||
OR (
|
|
||||||
v_has_filter_response_quality_metric_name = 0
|
|
||||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
AND (
|
|
||||||
a_get_inactive_metric = 1
|
|
||||||
OR RESPONSE_QUALITY_METRIC.active = 1
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
INSERT INTO tmp_Response_Quality_Metric_Calc_RQM (
|
INSERT INTO tmp_Response_Quality_Metric_Calc_RQM (
|
||||||
id_metric
|
id_metric
|
||||||
, id_unit_measurement
|
, id_unit_measurement
|
||||||
@@ -325,6 +462,8 @@ BEGIN
|
|||||||
, value_min
|
, value_min
|
||||||
, value_max
|
, value_max
|
||||||
, active
|
, active
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
@@ -360,6 +499,50 @@ BEGIN
|
|||||||
) RESPONSE_QUALITY_METRIC_COMBINED
|
) RESPONSE_QUALITY_METRIC_COMBINED
|
||||||
GROUP BY RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
GROUP BY RESPONSE_QUALITY_METRIC_COMBINED.id_metric
|
||||||
)
|
)
|
||||||
|
, Response_Quality_Metric_Access AS (
|
||||||
|
SELECT
|
||||||
|
RESPONSE_QUALITY_METRIC.id_metric
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY RESPONSE_QUALITY_METRIC.id_metric
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_metric
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Response_Quality_Metric_User_Link RESPONSE_QUALITY_METRIC_USER_LINK
|
||||||
|
ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_USER_LINK.id_response_quality_metric
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_metric = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR RESPONSE_QUALITY_METRIC_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_RQM t_USER
|
||||||
|
ON RESPONSE_QUALITY_METRIC_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON RESPONSE_QUALITY_METRIC_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
|
)
|
||||||
SELECT
|
SELECT
|
||||||
RESPONSE_QUALITY_METRIC.id_metric
|
RESPONSE_QUALITY_METRIC.id_metric
|
||||||
, RESPONSE_QUALITY_METRIC.id_unit_measurement
|
, RESPONSE_QUALITY_METRIC.id_unit_measurement
|
||||||
@@ -368,6 +551,8 @@ BEGIN
|
|||||||
, RESPONSE_QUALITY_METRIC.value_min
|
, RESPONSE_QUALITY_METRIC.value_min
|
||||||
, RESPONSE_QUALITY_METRIC.value_max
|
, RESPONSE_QUALITY_METRIC.value_max
|
||||||
, RESPONSE_QUALITY_METRIC.active
|
, RESPONSE_QUALITY_METRIC.active
|
||||||
|
, IFNULL(RESPONSE_QUALITY_METRIC_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, RESPONSE_QUALITY_METRIC_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_response_quality_metric_id = 0
|
v_has_filter_response_quality_metric_id = 0
|
||||||
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
OR RESPONSE_QUALITY_METRIC_FILTERS.does_meet_id_filter = 1
|
||||||
@@ -380,6 +565,9 @@ BEGIN
|
|||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
FROM fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC
|
||||||
LEFT JOIN Response_Quality_Metric_Filters RESPONSE_QUALITY_METRIC_FILTERS ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_FILTERS.id_metric
|
LEFT JOIN Response_Quality_Metric_Filters RESPONSE_QUALITY_METRIC_FILTERS ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_FILTERS.id_metric
|
||||||
|
LEFT JOIN Response_Quality_Metric_Access RESPONSE_QUALITY_METRIC_ACCESS
|
||||||
|
ON RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC_ACCESS.id_metric
|
||||||
|
AND RESPONSE_QUALITY_METRIC_ACCESS.index_link_in_metric = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_metric = 1
|
a_get_all_metric = 1
|
||||||
@@ -392,6 +580,7 @@ BEGIN
|
|||||||
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
AND RESPONSE_QUALITY_METRIC_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(RESPONSE_QUALITY_METRIC_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_metric = 1
|
a_get_inactive_metric = 1
|
||||||
OR RESPONSE_QUALITY_METRIC.active = 1
|
OR RESPONSE_QUALITY_METRIC.active = 1
|
||||||
@@ -411,26 +600,43 @@ BEGIN
|
|||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_RQM t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_RQM t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
DELETE t_RESPONSE_QUALITY_METRIC
|
DELETE t_RESPONSE_QUALITY_METRIC
|
||||||
FROM tmp_Response_Quality_Metric_Calc_RQM t_RESPONSE_QUALITY_METRIC
|
FROM tmp_Response_Quality_Metric_Calc_RQM t_RESPONSE_QUALITY_METRIC
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_RQM t_USER ON t_RESPONSE_QUALITY_METRIC.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
AND t_RESPONSE_QUALITY_METRIC.does_meet_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
AND t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_RESPONSE_QUALITY_METRIC.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -441,80 +647,6 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_RQM t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_RQM (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Button Icons.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
@@ -597,6 +729,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_RQM;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_RQM;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric_Calc_RQM;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_RQM;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -614,6 +747,11 @@ CALL fetchmetrics.p_dog_calc_response_quality_metric (
|
|||||||
, 0 -- a_get_inactive_metric
|
, 0 -- a_get_inactive_metric
|
||||||
, '' -- a_ids_metric
|
, '' -- a_ids_metric
|
||||||
, '' -- a_names_metric
|
, '' -- a_names_metric
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_response_quality_metric (
|
|||||||
, IN a_get_inactive_response_quality_metric BIT
|
, IN a_get_inactive_response_quality_metric BIT
|
||||||
, IN a_ids_response_quality_metric TEXT
|
, IN a_ids_response_quality_metric TEXT
|
||||||
, IN a_names_response_quality_metric TEXT
|
, IN a_names_response_quality_metric TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -23,7 +28,6 @@ BEGIN
|
|||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
@@ -81,20 +85,9 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
/*
|
|
||||||
SET a_get_all_response_quality_metric := IFNULL(a_get_all_response_quality_metric, 0);
|
|
||||||
SET a_get_inactive_response_quality_metric := IFNULL(a_get_inactive_response_quality_metric, 0);
|
|
||||||
SET a_ids_response_quality_metric := TRIM(IFNULL(a_ids_response_quality_metric, ''));
|
|
||||||
SET a_names_response_quality_metric := TRIM(IFNULL(a_names_response_quality_metric, ''));
|
|
||||||
SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1);
|
|
||||||
SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1);
|
|
||||||
SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0);
|
|
||||||
SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1);
|
|
||||||
*/
|
|
||||||
SET a_debug := IFNULL(a_debug, 0);
|
SET a_debug := IFNULL(a_debug, 0);
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
@@ -104,6 +97,11 @@ BEGIN
|
|||||||
, a_get_inactive_response_quality_metric
|
, a_get_inactive_response_quality_metric
|
||||||
, a_ids_response_quality_metric
|
, a_ids_response_quality_metric
|
||||||
, a_names_response_quality_metric
|
, a_names_response_quality_metric
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -115,7 +113,6 @@ BEGIN
|
|||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
, v_guid
|
, v_guid
|
||||||
, v_id_permission_dog_view
|
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -142,83 +139,6 @@ BEGIN
|
|||||||
, msg TEXT NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = v_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
|
||||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view RESPONSE_QUALITY_METRIC.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Call Response_Quality_Metric Calc
|
-- Call Response_Quality_Metric Calc
|
||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
@@ -230,6 +150,11 @@ BEGIN
|
|||||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -246,6 +171,11 @@ BEGIN
|
|||||||
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
, a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric
|
||||||
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
, a_ids_response_quality_metric -- a_ids_response_quality_metric
|
||||||
, a_names_response_quality_metric -- a_names_response_quality_metric
|
, a_names_response_quality_metric -- a_names_response_quality_metric
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -291,16 +221,6 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Filter outputs
|
|
||||||
IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT * FROM tmp_Response_Quality_Metric;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
DELETE FROM tmp_Response_Quality_Metric;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
|
|
||||||
-- Outputs
|
-- Outputs
|
||||||
-- RESPONSE_QUALITY_METRIC
|
-- RESPONSE_QUALITY_METRIC
|
||||||
SELECT
|
SELECT
|
||||||
@@ -365,6 +285,11 @@ CALL fetchmetrics.p_dog_get_many_response_quality_metric (
|
|||||||
, 0 -- a_get_inactive_response_quality_metric
|
, 0 -- a_get_inactive_response_quality_metric
|
||||||
, '' -- a_ids_response_quality_metric
|
, '' -- a_ids_response_quality_metric
|
||||||
, '' -- a_names_response_quality_metric
|
, '' -- a_names_response_quality_metric
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -379,6 +304,11 @@ CALL fetchmetrics.p_dog_get_many_response_quality_metric (
|
|||||||
, 0 -- a_get_inactive_response_quality_metric
|
, 0 -- a_get_inactive_response_quality_metric
|
||||||
, '' -- a_ids_response_quality_metric
|
, '' -- a_ids_response_quality_metric
|
||||||
, 'pat,point' -- a_names_response_quality_metric
|
, 'pat,point' -- a_names_response_quality_metric
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -11,6 +11,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_calc_obedience_level (
|
|||||||
, IN a_get_inactive_obedience_level BIT
|
, IN a_get_inactive_obedience_level BIT
|
||||||
, IN a_ids_obedience_level TEXT
|
, IN a_ids_obedience_level TEXT
|
||||||
, IN a_names_obedience_level TEXT
|
, IN a_names_obedience_level TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -26,9 +31,14 @@ BEGIN
|
|||||||
DECLARE v_has_filter_obedience_level_name BIT;
|
DECLARE v_has_filter_obedience_level_name BIT;
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
DECLARE v_id_minimum INT;
|
||||||
|
DECLARE v_id_permission_command_view INT;
|
||||||
DECLARE v_id_permission_dog_view INT;
|
DECLARE v_id_permission_dog_view INT;
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
|
DECLARE v_ids_permission_required VARCHAR(200);
|
||||||
|
DECLARE v_is_super_user BIT;
|
||||||
|
DECLARE v_priority_access_level_none INT;
|
||||||
|
DECLARE v_priority_access_level_view INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
|
|
||||||
DECLARE exit handler for SQLEXCEPTION
|
DECLARE exit handler for SQLEXCEPTION
|
||||||
@@ -83,9 +93,17 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
|
SET v_id_permission_command_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMMAND_VIEW' LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
SET v_ids_permission_required := (SELECT CONCAT(
|
||||||
|
CONVERT(v_id_permission_dog_view, CHAR)
|
||||||
|
, ','
|
||||||
|
, CONVERT(v_id_permission_command_view, CHAR)
|
||||||
|
));
|
||||||
|
SET v_priority_access_level_none := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'NONE' LIMIT 1);
|
||||||
|
SET v_priority_access_level_view := (SELECT ACCESS_LEVEL.priority FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.id_access_level = v_id_access_level_view);
|
||||||
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
CALL fetchmetrics.p_core_validate_guid ( a_guid );
|
||||||
|
|
||||||
@@ -109,6 +127,10 @@ BEGIN
|
|||||||
, a_get_inactive_obedience_level
|
, a_get_inactive_obedience_level
|
||||||
, a_ids_obedience_level
|
, a_ids_obedience_level
|
||||||
, a_names_obedience_level
|
, a_names_obedience_level
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met
|
, a_require_all_id_search_filters_met
|
||||||
, a_require_any_id_search_filters_met
|
, a_require_any_id_search_filters_met
|
||||||
, a_require_all_non_id_search_filters_met
|
, a_require_all_non_id_search_filters_met
|
||||||
@@ -120,7 +142,9 @@ BEGIN
|
|||||||
SELECT
|
SELECT
|
||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
|
, v_id_permission_command_view
|
||||||
, v_id_permission_dog_view
|
, v_id_permission_dog_view
|
||||||
|
, v_ids_permission_required
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -129,9 +153,30 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||||
|
|
||||||
|
CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_Obedience_Level (
|
||||||
|
id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL
|
||||||
|
, id_user INT
|
||||||
|
, id_role INT
|
||||||
|
, id_permission_required INT NOT NULL
|
||||||
|
, priority_access_level_required INT NOT NULL
|
||||||
|
, is_super_user BIT
|
||||||
|
, priority_access_level_user INT
|
||||||
|
, has_access BIT
|
||||||
|
, can_view BIT
|
||||||
|
, can_edit BIT
|
||||||
|
, can_admin BIT
|
||||||
|
, active BIT
|
||||||
|
|
||||||
|
, does_meet_id_filters BIT
|
||||||
|
, does_meet_non_id_filters BIT
|
||||||
|
);
|
||||||
|
|
||||||
CREATE TEMPORARY TABLE tmp_Obedience_Level_Calc_Obedience_Level (
|
CREATE TEMPORARY TABLE tmp_Obedience_Level_Calc_Obedience_Level (
|
||||||
id_obedience_level INT NOT NULL
|
id_obedience_level INT NOT NULL
|
||||||
|
, exists_valid_link BIT NOT NULL
|
||||||
|
, id_user INT
|
||||||
, does_meet_id_filters BIT NOT NULL
|
, does_meet_id_filters BIT NOT NULL
|
||||||
, does_meet_non_id_filters BIT NOT NULL
|
, does_meet_non_id_filters BIT NOT NULL
|
||||||
);
|
);
|
||||||
@@ -158,6 +203,170 @@ BEGIN
|
|||||||
SET v_has_filter_obedience_level_id = CASE WHEN a_ids_obedience_level <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_obedience_level_id = CASE WHEN a_ids_obedience_level <> '' THEN 1 ELSE 0 END;
|
||||||
SET v_has_filter_obedience_level_name = CASE WHEN a_names_obedience_level <> '' THEN 1 ELSE 0 END;
|
SET v_has_filter_obedience_level_name = CASE WHEN a_names_obedience_level <> '' THEN 1 ELSE 0 END;
|
||||||
|
|
||||||
|
|
||||||
|
-- Permissions
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_calc_user_access(
|
||||||
|
a_guid -- a_guid
|
||||||
|
, 0 -- get_all_user
|
||||||
|
, 0 -- get_inactive_user
|
||||||
|
, a_id_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
IFNULL(CALC_USER_T.has_access, 0)
|
||||||
|
, IFNULL(CALC_USER_T.is_super_user, 0)
|
||||||
|
INTO
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.guid = a_guid
|
||||||
|
LIMIT 1
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
v_can_view
|
||||||
|
, v_is_super_user
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
IF (v_can_view = 0) THEN
|
||||||
|
DELETE t_ME
|
||||||
|
FROM tmp_Msg_Error_Calc_Obedience_Level t_ME
|
||||||
|
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
||||||
|
;
|
||||||
|
INSERT INTO tmp_Msg_Error_Calc_Obedience_Level (
|
||||||
|
id_type
|
||||||
|
, code
|
||||||
|
, msg
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
v_id_type_error_no_permission
|
||||||
|
, v_code_type_error_no_permission
|
||||||
|
, 'You do not have permission to view Dogs and Obedience_Levels.'
|
||||||
|
)
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Users
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT
|
||||||
|
a_guid -- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_calc_user_access(
|
||||||
|
a_guid-- guid
|
||||||
|
, a_get_all_user -- get_all_user
|
||||||
|
, a_get_inactive_user -- get_inactive_user
|
||||||
|
, a_ids_user -- ids_user
|
||||||
|
, '' -- a_auth0_ids_user
|
||||||
|
, a_names_user -- a_names_user
|
||||||
|
, a_emails_user -- a_emails_user
|
||||||
|
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
|
, a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
|
, 0 -- a_require_any_non_id_search_filters_met
|
||||||
|
, v_ids_permission_required -- ids_permission
|
||||||
|
, v_id_access_level_view -- ids_access_level
|
||||||
|
, 0 -- a_show_errors
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO tmp_Calc_User_Access_Calc_Obedience_Level (
|
||||||
|
id_user
|
||||||
|
, id_role
|
||||||
|
, id_permission_required
|
||||||
|
, priority_access_level_required
|
||||||
|
, is_super_user
|
||||||
|
, priority_access_level_user
|
||||||
|
, has_access
|
||||||
|
, can_view
|
||||||
|
, can_edit
|
||||||
|
, can_admin
|
||||||
|
, active
|
||||||
|
, does_meet_id_filters
|
||||||
|
, does_meet_non_id_filters
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
CALC_USER_T.id_user
|
||||||
|
, CALC_USER_T.id_role
|
||||||
|
, CALC_USER_T.id_permission_required
|
||||||
|
, CALC_USER_T.priority_access_level_required
|
||||||
|
, CALC_USER_T.is_super_user
|
||||||
|
, CALC_USER_T.priority_access_level_user
|
||||||
|
, CALC_USER_T.has_access
|
||||||
|
, CALC_USER_T.can_view
|
||||||
|
, CALC_USER_T.can_edit
|
||||||
|
, CALC_USER_T.can_admin
|
||||||
|
, CALC_USER_T.active
|
||||||
|
, CALC_USER_T.does_meet_id_filters
|
||||||
|
, CALC_USER_T.does_meet_non_id_filters
|
||||||
|
FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T
|
||||||
|
WHERE CALC_USER_T.GUID = a_guid
|
||||||
|
;
|
||||||
|
|
||||||
|
IF a_debug = 1 THEN
|
||||||
|
SELECT 'After get many user';
|
||||||
|
SELECT * FROM tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
CALL demo.p_dog_clear_calc_user_access(
|
||||||
|
a_guid
|
||||||
|
, 0 -- a_debug
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
-- Obedience_Levels
|
-- Obedience_Levels
|
||||||
IF v_has_filter_obedience_level_id = 1 THEN
|
IF v_has_filter_obedience_level_id = 1 THEN
|
||||||
CALL fetchmetrics.p_core_split(a_guid, a_ids_obedience_level, ',', a_debug);
|
CALL fetchmetrics.p_core_split(a_guid, a_ids_obedience_level, ',', a_debug);
|
||||||
@@ -205,12 +414,12 @@ BEGIN
|
|||||||
IF EXISTS (
|
IF EXISTS (
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(OBEDIENCE_LEVELS.id_obedience_level)
|
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
||||||
OR (
|
OR (
|
||||||
OBEDIENCE_LEVELS.active = 0
|
OBEDIENCE_LEVEL.active = 0
|
||||||
AND a_get_inactive_obedience_level = 0
|
AND a_get_inactive_obedience_level = 0
|
||||||
)
|
)
|
||||||
) THEN
|
) THEN
|
||||||
@@ -224,12 +433,12 @@ BEGIN
|
|||||||
, v_code_type_error_bad_data
|
, v_code_type_error_bad_data
|
||||||
, CONCAT('Invalid or inactive Obedience_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
, CONCAT('Invalid or inactive Obedience_Level IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL'))
|
||||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||||
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||||
WHERE
|
WHERE
|
||||||
ISNULL(t_SPLIT_ID.as_int)
|
ISNULL(t_SPLIT_ID.as_int)
|
||||||
OR ISNULL(OBEDIENCE_LEVELS.id_obedience_level)
|
OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level)
|
||||||
OR (
|
OR (
|
||||||
OBEDIENCE_LEVELS.active = 0
|
OBEDIENCE_LEVEL.active = 0
|
||||||
AND a_get_inactive_obedience_level = 0
|
AND a_get_inactive_obedience_level = 0
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
@@ -239,70 +448,122 @@ BEGIN
|
|||||||
ELSE
|
ELSE
|
||||||
INSERT INTO tmp_Obedience_Level_Calc_Obedience_Level (
|
INSERT INTO tmp_Obedience_Level_Calc_Obedience_Level (
|
||||||
id_obedience_level
|
id_obedience_level
|
||||||
|
, exists_valid_link
|
||||||
|
, id_user
|
||||||
, does_meet_id_filters
|
, does_meet_id_filters
|
||||||
, does_meet_non_id_filters
|
, does_meet_non_id_filters
|
||||||
)
|
)
|
||||||
WITH
|
WITH
|
||||||
Obedience_Level_Id_Filter AS (
|
Obedience_Level_Id_Filter AS (
|
||||||
SELECT OBEDIENCE_LEVELS.id_obedience_level
|
SELECT OBEDIENCE_LEVEL.id_obedience_level
|
||||||
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
FROM tmp_Split_Id_Calc_Obedience_Level t_SPLIT_ID
|
||||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON t_SPLIT_ID.as_int = OBEDIENCE_LEVELS.id_obedience_level
|
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_SPLIT_ID.as_int = OBEDIENCE_LEVEL.id_obedience_level
|
||||||
)
|
)
|
||||||
, Obedience_Level_Name_Filter AS (
|
, Obedience_Level_Name_Filter AS (
|
||||||
SELECT OBEDIENCE_LEVELS.id_obedience_level
|
SELECT OBEDIENCE_LEVEL.id_obedience_level
|
||||||
FROM tmp_Split_Name_Calc_Obedience_Level t_SPLIT_NAME
|
FROM tmp_Split_Name_Calc_Obedience_Level t_SPLIT_NAME
|
||||||
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS ON OBEDIENCE_LEVELS.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
INNER JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON OBEDIENCE_LEVEL.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%')
|
||||||
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL
|
||||||
)
|
)
|
||||||
, Obedience_Level_Filters AS (
|
, Obedience_Level_Filters AS (
|
||||||
SELECT
|
SELECT
|
||||||
OBEDIENCE_LEVELS_COMBINED.id_obedience_level
|
OBEDIENCE_LEVEL_COMBINED.id_obedience_level
|
||||||
, MAX(OBEDIENCE_LEVELS_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
, MAX(OBEDIENCE_LEVEL_COMBINED.does_meet_id_filter) AS does_meet_id_filter
|
||||||
, MAX(OBEDIENCE_LEVELS_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
, MAX(OBEDIENCE_LEVEL_COMBINED.does_meet_name_filter) AS does_meet_name_filter
|
||||||
FROM (
|
FROM (
|
||||||
SELECT
|
SELECT
|
||||||
OBEDIENCE_LEVELS_ID_FILTER.id_obedience_level
|
OBEDIENCE_LEVEL_ID_FILTER.id_obedience_level
|
||||||
, 1 AS does_meet_id_filter
|
, 1 AS does_meet_id_filter
|
||||||
, 0 AS does_meet_name_filter
|
, 0 AS does_meet_name_filter
|
||||||
FROM Obedience_Level_Id_Filter OBEDIENCE_LEVELS_ID_FILTER
|
FROM Obedience_Level_Id_Filter OBEDIENCE_LEVEL_ID_FILTER
|
||||||
UNION
|
UNION
|
||||||
SELECT
|
SELECT
|
||||||
OBEDIENCE_LEVELS_NAME_FILTER.id_obedience_level
|
OBEDIENCE_LEVEL_NAME_FILTER.id_obedience_level
|
||||||
, 0 AS does_meet_id_filter
|
, 0 AS does_meet_id_filter
|
||||||
, 1 AS does_meet_name_filter
|
, 1 AS does_meet_name_filter
|
||||||
FROM Obedience_Level_Name_Filter OBEDIENCE_LEVELS_NAME_FILTER
|
FROM Obedience_Level_Name_Filter OBEDIENCE_LEVEL_NAME_FILTER
|
||||||
) OBEDIENCE_LEVELS_COMBINED
|
) OBEDIENCE_LEVEL_COMBINED
|
||||||
GROUP BY OBEDIENCE_LEVELS_COMBINED.id_obedience_level
|
GROUP BY OBEDIENCE_LEVEL_COMBINED.id_obedience_level
|
||||||
|
)
|
||||||
|
, Obedience_Level_Access AS (
|
||||||
|
SELECT
|
||||||
|
OBEDIENCE_LEVEL.id_obedience_level
|
||||||
|
, CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END AS exists_valid_link
|
||||||
|
, ROW_NUMBER() OVER (
|
||||||
|
PARTITION BY OBEDIENCE_LEVEL.id_obedience_level
|
||||||
|
ORDER BY
|
||||||
|
CASE WHEN
|
||||||
|
v_is_super_user = 1
|
||||||
|
OR (
|
||||||
|
t_USER.id_user IS NOT NULL
|
||||||
|
AND IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none) <= v_priority_access_level_view
|
||||||
|
)
|
||||||
|
THEN 1 ELSE 0 END DESC
|
||||||
|
, t_USER.does_meet_id_filters DESC
|
||||||
|
, t_USER.does_meet_non_id_filters DESC
|
||||||
|
) AS index_link_in_obedience_level
|
||||||
|
, t_USER.id_user
|
||||||
|
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Obedience_Level_User_Link OBEDIENCE_LEVEL_USER_LINK
|
||||||
|
ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_USER_LINK.id_obedience_level
|
||||||
|
AND (
|
||||||
|
(
|
||||||
|
a_get_inactive_obedience_level = 1
|
||||||
|
AND a_get_inactive_user = 1
|
||||||
|
)
|
||||||
|
OR OBEDIENCE_LEVEL_USER_LINK.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Obedience_Level t_USER
|
||||||
|
ON OBEDIENCE_LEVEL_USER_LINK.id_user = t_USER.id_user
|
||||||
|
AND (
|
||||||
|
a_get_inactive_user = 1
|
||||||
|
OR t_USER.active = 1
|
||||||
|
)
|
||||||
|
LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL
|
||||||
|
ON OBEDIENCE_LEVEL_USER_LINK.id_access_level = ACCESS_LEVEL.id_access_level
|
||||||
|
AND ACCESS_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
OBEDIENCE_LEVELS.id_obedience_level
|
OBEDIENCE_LEVEL.id_obedience_level
|
||||||
|
, IFNULL(OBEDIENCE_LEVEL_ACCESS.exists_valid_link, 0) AS exists_valid_link
|
||||||
|
, OBEDIENCE_LEVEL_ACCESS.id_user
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
v_has_filter_obedience_level_id = 0
|
v_has_filter_obedience_level_id = 0
|
||||||
OR IFNULL(OBEDIENCE_LEVELS_FILTERS.does_meet_id_filter, 0) = 1
|
OR IFNULL(OBEDIENCE_LEVEL_FILTERS.does_meet_id_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_id_filters
|
THEN 1 ELSE 0 END AS does_meet_id_filters
|
||||||
, CASE WHEN
|
, CASE WHEN
|
||||||
(
|
(
|
||||||
v_has_filter_obedience_level_name = 0
|
v_has_filter_obedience_level_name = 0
|
||||||
)
|
)
|
||||||
OR IFNULL(OBEDIENCE_LEVELS_FILTERS.does_meet_name_filter, 0) = 1
|
OR IFNULL(OBEDIENCE_LEVEL_FILTERS.does_meet_name_filter, 0) = 1
|
||||||
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
THEN 1 ELSE 0 END AS does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS
|
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||||
LEFT JOIN Obedience_Level_Filters OBEDIENCE_LEVELS_FILTERS ON OBEDIENCE_LEVELS.id_obedience_level = OBEDIENCE_LEVELS_FILTERS.id_obedience_level
|
LEFT JOIN Obedience_Level_Filters OBEDIENCE_LEVEL_FILTERS ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_FILTERS.id_obedience_level
|
||||||
|
LEFT JOIN Obedience_Level_Access OBEDIENCE_LEVEL_ACCESS
|
||||||
|
ON OBEDIENCE_LEVEL.id_obedience_level = OBEDIENCE_LEVEL_ACCESS.id_obedience_level
|
||||||
|
AND OBEDIENCE_LEVEL_ACCESS.index_link_in_obedience_level = 1
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_get_all_obedience_level = 1
|
a_get_all_obedience_level = 1
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_obedience_level_id = 1
|
v_has_filter_obedience_level_id = 1
|
||||||
AND OBEDIENCE_LEVELS_FILTERS.does_meet_id_filter = 1
|
AND OBEDIENCE_LEVEL_FILTERS.does_meet_id_filter = 1
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
v_has_filter_obedience_level_name = 1
|
v_has_filter_obedience_level_name = 1
|
||||||
AND OBEDIENCE_LEVELS_FILTERS.does_meet_name_filter = 1
|
AND OBEDIENCE_LEVEL_FILTERS.does_meet_name_filter = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
AND IFNULL(OBEDIENCE_LEVEL_ACCESS.exists_valid_link, 0) = 1
|
||||||
AND (
|
AND (
|
||||||
a_get_inactive_obedience_level = 1
|
a_get_inactive_obedience_level = 1
|
||||||
OR OBEDIENCE_LEVELS.active = 1
|
OR OBEDIENCE_LEVEL.active = 1
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -318,28 +579,45 @@ BEGIN
|
|||||||
|
|
||||||
-- Filter records
|
-- Filter records
|
||||||
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Obedience_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Obedience_Level t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
DELETE t_OBEDIENCE_LEVELS
|
DELETE t_OBEDIENCE_LEVEL
|
||||||
FROM tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVELS
|
FROM tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVEL
|
||||||
|
LEFT JOIN tmp_Calc_User_Access_Calc_Obedience_Level t_USER ON t_OBEDIENCE_LEVEL.id_user = t_USER.id_user
|
||||||
WHERE
|
WHERE
|
||||||
(
|
(
|
||||||
a_require_all_id_search_filters_met = 1
|
a_require_all_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_OBEDIENCE_LEVELS.does_meet_id_filters = 0
|
t_OBEDIENCE_LEVEL.does_meet_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_all_non_id_search_filters_met = 1
|
a_require_all_non_id_search_filters_met = 1
|
||||||
AND (
|
AND (
|
||||||
t_OBEDIENCE_LEVELS.does_meet_non_id_filters = 0
|
t_OBEDIENCE_LEVEL.does_meet_non_id_filters = 0
|
||||||
|
OR (
|
||||||
|
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_id_search_filters_met = 1
|
a_require_any_id_search_filters_met = 1
|
||||||
AND t_OBEDIENCE_LEVELS.does_meet_id_filters = 0
|
AND t_OBEDIENCE_LEVEL.does_meet_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
OR (
|
OR (
|
||||||
a_require_any_non_id_search_filters_met = 1
|
a_require_any_non_id_search_filters_met = 1
|
||||||
AND t_OBEDIENCE_LEVELS.does_meet_non_id_filters = 0
|
AND t_OBEDIENCE_LEVEL.does_meet_non_id_filters = 0
|
||||||
|
AND (
|
||||||
|
t_OBEDIENCE_LEVEL.exists_valid_link = 0
|
||||||
|
AND IFNULL(t_USER.does_meet_non_id_filters, 0) = 0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -351,81 +629,6 @@ BEGIN
|
|||||||
|
|
||||||
-- Calculated fields
|
-- Calculated fields
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
a_guid -- a_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = a_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error_Calc_Obedience_Level t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error_Calc_Obedience_Level (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Dogs and Obedience_Levels.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
a_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
SELECT 'Before non-permitted data deletion';
|
SELECT 'Before non-permitted data deletion';
|
||||||
SELECT * FROM tmp_Obedience_Level_Calc_Obedience_Level;
|
SELECT * FROM tmp_Obedience_Level_Calc_Obedience_Level;
|
||||||
@@ -459,16 +662,16 @@ BEGIN
|
|||||||
)
|
)
|
||||||
SELECT
|
SELECT
|
||||||
a_guid
|
a_guid
|
||||||
, t_OBEDIENCE_LEVELS.id_obedience_level
|
, t_OBEDIENCE_LEVEL.id_obedience_level
|
||||||
, OBEDIENCE_LEVELS.code
|
, OBEDIENCE_LEVEL.code
|
||||||
, OBEDIENCE_LEVELS.name
|
, OBEDIENCE_LEVEL.name
|
||||||
, OBEDIENCE_LEVELS.active
|
, OBEDIENCE_LEVEL.active
|
||||||
|
|
||||||
, t_OBEDIENCE_LEVELS.does_meet_id_filters
|
, t_OBEDIENCE_LEVEL.does_meet_id_filters
|
||||||
, t_OBEDIENCE_LEVELS.does_meet_non_id_filters
|
, t_OBEDIENCE_LEVEL.does_meet_non_id_filters
|
||||||
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVELS
|
FROM fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL
|
||||||
INNER JOIN tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVELS ON OBEDIENCE_LEVELS.id_obedience_level = t_OBEDIENCE_LEVELS.id_obedience_level
|
INNER JOIN tmp_Obedience_Level_Calc_Obedience_Level t_OBEDIENCE_LEVEL ON OBEDIENCE_LEVEL.id_obedience_level = t_OBEDIENCE_LEVEL.id_obedience_level
|
||||||
ORDER BY OBEDIENCE_LEVELS.name
|
ORDER BY OBEDIENCE_LEVEL.name
|
||||||
;
|
;
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
||||||
@@ -499,6 +702,7 @@ BEGIN
|
|||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Obedience_Level;
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
DROP TEMPORARY TABLE IF EXISTS tmp_Obedience_Level_Calc_Obedience_Level;
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp_Calc_User_Access_Calc_Obedience_Level;
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
IF a_debug = 1 THEN
|
||||||
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start );
|
||||||
@@ -517,6 +721,11 @@ CALL fetchmetrics.p_dog_calc_obedience_level (
|
|||||||
, 0 -- a_get_inactive_obedience_level
|
, 0 -- a_get_inactive_obedience_level
|
||||||
, '' -- a_ids_obedience_level
|
, '' -- a_ids_obedience_level
|
||||||
, '' -- a_names_obedience_level
|
, '' -- a_names_obedience_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 0 -- a_require_all_id_search_filters_met
|
, 0 -- a_require_all_id_search_filters_met
|
||||||
, 0 -- a_require_any_id_search_filters_met
|
, 0 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ CREATE PROCEDURE fetchmetrics.p_dog_get_many_obedience_level (
|
|||||||
, IN a_get_inactive_obedience_level BIT
|
, IN a_get_inactive_obedience_level BIT
|
||||||
, IN a_ids_obedience_level TEXT
|
, IN a_ids_obedience_level TEXT
|
||||||
, IN a_names_obedience_level TEXT
|
, IN a_names_obedience_level TEXT
|
||||||
|
, IN a_get_all_user BIT
|
||||||
|
, IN a_get_inactive_user BIT
|
||||||
|
, IN a_ids_user TEXT
|
||||||
|
, IN a_names_user TEXT
|
||||||
|
, IN a_emails_user TEXT
|
||||||
, IN a_require_all_id_search_filters_met BIT
|
, IN a_require_all_id_search_filters_met BIT
|
||||||
, IN a_require_any_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_all_non_id_search_filters_met BIT
|
||||||
@@ -22,8 +27,6 @@ BEGIN
|
|||||||
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
DECLARE v_code_type_error_no_permission VARCHAR(100);
|
||||||
DECLARE v_guid BINARY(36);
|
DECLARE v_guid BINARY(36);
|
||||||
DECLARE v_id_access_level_view INT;
|
DECLARE v_id_access_level_view INT;
|
||||||
DECLARE v_id_minimum INT;
|
|
||||||
DECLARE v_id_permission_dog_view INT;
|
|
||||||
DECLARE v_id_type_error_bad_data INT;
|
DECLARE v_id_type_error_bad_data INT;
|
||||||
DECLARE v_id_type_error_no_permission INT;
|
DECLARE v_id_type_error_no_permission INT;
|
||||||
DECLARE v_time_start TIMESTAMP(6);
|
DECLARE v_time_start TIMESTAMP(6);
|
||||||
@@ -81,7 +84,6 @@ BEGIN
|
|||||||
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
SET v_code_type_error_no_permission := 'NO_PERMISSION';
|
||||||
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
|
||||||
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1);
|
||||||
SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1);
|
|
||||||
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1);
|
||||||
|
|
||||||
SET a_id_user := IFNULL(a_id_user, 0);
|
SET a_id_user := IFNULL(a_id_user, 0);
|
||||||
@@ -115,7 +117,6 @@ BEGIN
|
|||||||
v_id_type_error_bad_data
|
v_id_type_error_bad_data
|
||||||
, v_id_type_error_no_permission
|
, v_id_type_error_no_permission
|
||||||
, v_guid
|
, v_guid
|
||||||
, v_id_permission_dog_view
|
|
||||||
, v_time_start
|
, v_time_start
|
||||||
;
|
;
|
||||||
END IF;
|
END IF;
|
||||||
@@ -140,83 +141,6 @@ BEGIN
|
|||||||
, msg TEXT NOT NULL
|
, msg TEXT NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Permissions
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- get_all_user
|
|
||||||
, 0 -- get_inactive_user
|
|
||||||
, a_id_user -- ids_user
|
|
||||||
, '' -- a_auth0_ids_user
|
|
||||||
, '' -- a_names_user
|
|
||||||
, '' -- a_emails_user
|
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
|
||||||
, 0 -- a_require_any_non_id_search_filters_met
|
|
||||||
, v_id_permission_dog_view -- ids_permission
|
|
||||||
, v_id_access_level_view -- ids_access_level
|
|
||||||
, 0 -- a_show_errors
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
SELECT
|
|
||||||
IFNULL(CALC_USER_T.has_access, 0)
|
|
||||||
INTO
|
|
||||||
v_can_view
|
|
||||||
FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T
|
|
||||||
WHERE CALC_USER_T.GUID = v_guid
|
|
||||||
LIMIT 1
|
|
||||||
;
|
|
||||||
|
|
||||||
IF a_debug = 1 THEN
|
|
||||||
SELECT v_can_view;
|
|
||||||
SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR;
|
|
||||||
SELECT * FROM tmp_Msg_Error t_ERROR;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
IF (v_can_view = 0) THEN
|
|
||||||
DELETE t_ME
|
|
||||||
FROM tmp_Msg_Error t_ME
|
|
||||||
WHERE t_ME.id_type <> v_id_type_error_no_permission
|
|
||||||
;
|
|
||||||
INSERT INTO tmp_Msg_Error (
|
|
||||||
id_type
|
|
||||||
, code
|
|
||||||
, msg
|
|
||||||
)
|
|
||||||
VALUES (
|
|
||||||
v_id_type_error_no_permission
|
|
||||||
, v_code_type_error_no_permission
|
|
||||||
, 'You do not have permission to view Obedience_Levels.'
|
|
||||||
)
|
|
||||||
;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL fetchmetrics.p_dog_clear_calc_user_access(
|
|
||||||
v_guid
|
|
||||||
, 0 -- a_debug
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
-- Call Obedience_Level Calc
|
-- Call Obedience_Level Calc
|
||||||
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN
|
||||||
@@ -228,6 +152,11 @@ BEGIN
|
|||||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||||
, a_ids_obedience_level -- a_ids_obedience_level
|
, a_ids_obedience_level -- a_ids_obedience_level
|
||||||
, a_names_obedience_level -- a_names_obedience_level
|
, a_names_obedience_level -- a_names_obedience_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -244,6 +173,11 @@ BEGIN
|
|||||||
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
, a_get_inactive_obedience_level -- a_get_inactive_obedience_level
|
||||||
, a_ids_obedience_level -- a_ids_obedience_level
|
, a_ids_obedience_level -- a_ids_obedience_level
|
||||||
, a_names_obedience_level -- a_names_obedience_level
|
, a_names_obedience_level -- a_names_obedience_level
|
||||||
|
, a_get_all_user
|
||||||
|
, a_get_inactive_user
|
||||||
|
, a_ids_user
|
||||||
|
, a_names_user
|
||||||
|
, a_emails_user
|
||||||
, a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met
|
, a_require_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_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_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met
|
||||||
@@ -351,6 +285,11 @@ CALL fetchmetrics.p_dog_get_many_obedience_level (
|
|||||||
, 0 -- a_get_inactive_obedience_level
|
, 0 -- a_get_inactive_obedience_level
|
||||||
, '' -- a_ids_obedience_level
|
, '' -- a_ids_obedience_level
|
||||||
, '' -- a_names_obedience_level
|
, '' -- a_names_obedience_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, '' -- a_names_user
|
||||||
|
, '' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
@@ -365,6 +304,11 @@ CALL fetchmetrics.p_dog_get_many_obedience_level (
|
|||||||
, 0 -- a_get_inactive_obedience_level
|
, 0 -- a_get_inactive_obedience_level
|
||||||
, '' -- a_ids_obedience_level
|
, '' -- a_ids_obedience_level
|
||||||
, 'pat,point' -- a_names_obedience_level
|
, 'pat,point' -- a_names_obedience_level
|
||||||
|
, 1 -- a_get_all_user
|
||||||
|
, 0 -- a_get_inactive_user
|
||||||
|
, '' -- a_ids_user
|
||||||
|
, 'pat,point' -- a_names_user
|
||||||
|
, 'pat,point' -- a_emails_user
|
||||||
, 1 -- a_require_all_id_search_filters_met
|
, 1 -- a_require_all_id_search_filters_met
|
||||||
, 1 -- a_require_any_id_search_filters_met
|
, 1 -- a_require_any_id_search_filters_met
|
||||||
, 0 -- a_require_all_non_id_search_filters_met
|
, 0 -- a_require_all_non_id_search_filters_met
|
||||||
|
|||||||
@@ -1197,6 +1197,25 @@ VALUES
|
|||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
INSERT INTO fetchmetrics.DOG_Button_Shape_User_Link (
|
||||||
|
id_button_shape
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
BS.id_button_shape
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Button_Shape BS
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
BS.id_button_shape
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Button_Shape BS
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO fetchmetrics.DOG_Colour (
|
INSERT INTO fetchmetrics.DOG_Colour (
|
||||||
code
|
code
|
||||||
, name
|
, name
|
||||||
@@ -1227,6 +1246,44 @@ VALUES
|
|||||||
, NULL
|
, NULL
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
INSERT INTO fetchmetrics.DOG_Image (
|
||||||
|
id_file_type
|
||||||
|
, id_dog
|
||||||
|
, name
|
||||||
|
, path
|
||||||
|
, display_order
|
||||||
|
, active
|
||||||
|
, id_user_created_by
|
||||||
|
)
|
||||||
|
VALUES (
|
||||||
|
2
|
||||||
|
, 1
|
||||||
|
, 'Wisp'
|
||||||
|
, 'https://fetch-metrics.co.uk/static/images/Wisp.jpg'
|
||||||
|
, 1
|
||||||
|
, 1
|
||||||
|
, 1
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
INSERT INTO fetchmetrics.DOG_Image_User_Link (
|
||||||
|
id_image
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
I.id_image
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Image I
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
I.id_image
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Image I
|
||||||
|
;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1376,6 +1433,25 @@ VALUES
|
|||||||
, 'Squeaky Toy'
|
, 'Squeaky Toy'
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
/*
|
||||||
|
INSERT INTO fetchmetrics.DOG_Distraction_Type_User_Link (
|
||||||
|
id_distraction_type
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
DT.id_type
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Type DT
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
DT.id_type
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Type DT
|
||||||
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level (
|
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level (
|
||||||
code
|
code
|
||||||
@@ -1405,6 +1481,24 @@ VALUES
|
|||||||
;
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
INSERT INTO fetchmetrics.DOG_Distraction_Intensity_Level_User_Link (
|
||||||
|
id_intensity_level
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
IL.id_intensity_level
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Intensity_Level IL
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
IL.id_intensity_level
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Distraction_Intensity_Level IL
|
||||||
|
;
|
||||||
|
|
||||||
INSERT INTO fetchmetrics.DOG_Distraction (
|
INSERT INTO fetchmetrics.DOG_Distraction (
|
||||||
id_assessment
|
id_assessment
|
||||||
, id_distraction_type
|
, id_distraction_type
|
||||||
@@ -1513,6 +1607,25 @@ VALUES
|
|||||||
, 1
|
, 1
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
/*
|
||||||
|
INSERT INTO fetchmetrics.DOG_Response_Quality_Metric_User_Link (
|
||||||
|
id_response_quality_metric
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
RQM.id_metric
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Response_Quality_Metric RQM
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
RQM.id_metric
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Response_Quality_Metric RQM
|
||||||
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
INSERT INTO fetchmetrics.DOG_Obedience_Level (
|
INSERT INTO fetchmetrics.DOG_Obedience_Level (
|
||||||
code
|
code
|
||||||
@@ -1576,6 +1689,26 @@ VALUES
|
|||||||
, 'Refused and Ran Away Refusing to Return'
|
, 'Refused and Ran Away Refusing to Return'
|
||||||
)
|
)
|
||||||
;
|
;
|
||||||
|
/*
|
||||||
|
|
||||||
|
INSERT INTO fetchmetrics.DOG_Obedience_Level_User_Link (
|
||||||
|
id_obedience_level
|
||||||
|
, id_user
|
||||||
|
, id_access_level
|
||||||
|
)
|
||||||
|
SELECT
|
||||||
|
OL.id_obedience_level
|
||||||
|
, 1
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Obedience_Level OL
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
OL.id_obedience_level
|
||||||
|
, 2
|
||||||
|
, 3
|
||||||
|
FROM fetchmetrics.DOG_Obedience_Level OL
|
||||||
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Post Excel-insert:
|
Post Excel-insert:
|
||||||
|
|||||||
@@ -88,6 +88,7 @@ body {
|
|||||||
.hero {
|
.hero {
|
||||||
padding: 8rem 2rem 4rem;
|
padding: 8rem 2rem 4rem;
|
||||||
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
.hero-content {
|
.hero-content {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
@@ -122,6 +123,7 @@ section.hero .button:hover {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
||||||
transition: transform 0.3s, box-shadow 0.3s;
|
transition: transform 0.3s, box-shadow 0.3s;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.featured-post:hover {
|
.featured-post:hover {
|
||||||
@@ -252,6 +254,7 @@ section.hero .button:hover {
|
|||||||
padding: 0.2rem 0.6rem;
|
padding: 0.2rem 0.6rem;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
margin-left: 1vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recent-posts {
|
.recent-posts {
|
||||||
|
|||||||
3
static/dist/css/blog_article.bundle.css
vendored
@@ -166,6 +166,7 @@ body {
|
|||||||
.hero {
|
.hero {
|
||||||
padding: 8rem 2rem 4rem;
|
padding: 8rem 2rem 4rem;
|
||||||
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
.hero-content {
|
.hero-content {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
@@ -200,6 +201,7 @@ section.hero .button:hover {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
||||||
transition: transform 0.3s, box-shadow 0.3s;
|
transition: transform 0.3s, box-shadow 0.3s;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.featured-post:hover {
|
.featured-post:hover {
|
||||||
@@ -330,6 +332,7 @@ section.hero .button:hover {
|
|||||||
padding: 0.2rem 0.6rem;
|
padding: 0.2rem 0.6rem;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
margin-left: 1vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recent-posts {
|
.recent-posts {
|
||||||
|
|||||||
2
static/dist/css/blog_article.bundle.css.map
vendored
3
static/dist/css/blog_home.bundle.css
vendored
@@ -166,6 +166,7 @@ body {
|
|||||||
.hero {
|
.hero {
|
||||||
padding: 8rem 2rem 4rem;
|
padding: 8rem 2rem 4rem;
|
||||||
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
.hero-content {
|
.hero-content {
|
||||||
max-width: 600px;
|
max-width: 600px;
|
||||||
@@ -200,6 +201,7 @@ section.hero .button:hover {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
||||||
transition: transform 0.3s, box-shadow 0.3s;
|
transition: transform 0.3s, box-shadow 0.3s;
|
||||||
|
margin-bottom: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.featured-post:hover {
|
.featured-post:hover {
|
||||||
@@ -330,6 +332,7 @@ section.hero .button:hover {
|
|||||||
padding: 0.2rem 0.6rem;
|
padding: 0.2rem 0.6rem;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
margin-left: 1vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.recent-posts {
|
.recent-posts {
|
||||||
|
|||||||
2
static/dist/css/blog_home.bundle.css.map
vendored
BIN
static/docs/graphic-success-chaos-to-control.xcf
Normal file
@@ -2,5 +2,6 @@ User-agent: *
|
|||||||
Disallow: /qa
|
Disallow: /qa
|
||||||
Disallow: /dev
|
Disallow: /dev
|
||||||
Disallow: /dog
|
Disallow: /dog
|
||||||
|
Disallow: /user
|
||||||
|
|
||||||
Sitemap: https://fetch-metrics.co.uk/sitemap.xml
|
Sitemap: https://fetch-metrics.co.uk/sitemap.xml
|
||||||
BIN
static/images/desktop_pc_monitor
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
static/images/desktop_pc_monitor.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
static/images/graphic-success-chaos-to-control-9_16-FQ.png
Normal file
|
After Width: | Height: | Size: 7.9 MiB |
BIN
static/images/graphic-success-chaos-to-control-9_16-HQ.png
Normal file
|
After Width: | Height: | Size: 591 KiB |
BIN
static/images/graphic-success-chaos-to-control-9_16-LQ.png
Normal file
|
After Width: | Height: | Size: 470 KiB |
BIN
static/images/messy_office
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
static/images/tidy_desk
Normal file
|
After Width: | Height: | Size: 21 KiB |
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
// internal
|
||||||
|
// import BasePage from "../base.js";
|
||||||
|
import PageBlogHome from "./home.js";
|
||||||
|
// external
|
||||||
|
|
||||||
|
|
||||||
|
export default class PageBlogArticleTheHiddenCostsOfSpreadsheetDogTrainingWhyUkTrainersAreLosing2000PlusPoundsPerYear extends PageBlogHome {
|
||||||
|
static hash = hashPageBlogArticleTheHiddenCostsOfSpreadsheetDogTrainingWhyUkTrainersAreLosing2000PlusPoundsPerYear;
|
||||||
|
|
||||||
|
constructor(router) {
|
||||||
|
super(router);
|
||||||
|
}
|
||||||
|
|
||||||
|
initialize() {
|
||||||
|
this.sharedInitialize();
|
||||||
|
this.hookupFormNewsletter();
|
||||||
|
this.hookupButtonSubmitFormContactUs();
|
||||||
|
}
|
||||||
|
|
||||||
|
leave() {
|
||||||
|
super.leave();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -133,6 +133,7 @@
|
|||||||
var hashPageApplyFoundingPartnerSuccess = "{{ model.HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS }}";
|
var hashPageApplyFoundingPartnerSuccess = "{{ model.HASH_PAGE_APPLY_FOUNDING_PARTNER_SUCCESS }}";
|
||||||
var hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients = "{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}";
|
var hashPageBlogArticleHowToScaleYourDogTrainingBusinessFrom25To100PlusClients = "{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}";
|
||||||
var hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess = "{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}";
|
var hashPageBlogArticleHowToScaleYourDogTrainingBusinessFromSoloToMultiTrainerSuccess = "{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}";
|
||||||
|
var hashPageBlogArticleTheHiddenCostsOfSpreadsheetDogTrainingWhyUkTrainersAreLosing2000PlusPoundsPerYear = "{{ model.HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR }}";
|
||||||
var hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress = "{{ model.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS }}";
|
var hashPageBlogArticleTheScienceBehindDogTrainingAssessmentsHowToTrackRealProgress = "{{ model.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS }}";
|
||||||
var hashPageBlogArticleWhyEveryProfessionalTrainerNeedsACommandDictionaryIn2025 = "{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}";
|
var hashPageBlogArticleWhyEveryProfessionalTrainerNeedsACommandDictionaryIn2025 = "{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}";
|
||||||
var hashPageBlogCategoryMarketingAndGrowth = "{{ model.HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH }}";
|
var hashPageBlogCategoryMarketingAndGrowth = "{{ model.HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH }}";
|
||||||
|
|||||||
@@ -0,0 +1,543 @@
|
|||||||
|
|
||||||
|
|
||||||
|
{% extends 'layouts/layout_blog_article.html' %}
|
||||||
|
|
||||||
|
{% block page_head %}
|
||||||
|
<link rel="stylesheet" href="{{ url_for('static', filename='dist/css/blog_article.bundle.css') }}">
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block page_nav_links %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block article_header %}
|
||||||
|
<span class="article-category">Business Management</span>
|
||||||
|
<h1 class="article-title">The Hidden Costs of Spreadsheet Dog Training: Why UK Trainers Are Losing £2,000+ Per Year</h1>
|
||||||
|
|
||||||
|
<div class="author-info">
|
||||||
|
<div class="author-avatar">T</div>
|
||||||
|
<div class="author-details">
|
||||||
|
<h4>Teddy Middleton-Smith</h4>
|
||||||
|
<p>Professional Dog Trainer & Software Engineer</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="meta-item">
|
||||||
|
<span>📅</span>
|
||||||
|
<span>16th August 2025</span>
|
||||||
|
</div>
|
||||||
|
<div class="meta-item">
|
||||||
|
<span>⏱️</span>
|
||||||
|
<span>8 min read</span>
|
||||||
|
</div>
|
||||||
|
<!--
|
||||||
|
<div class="meta-item">
|
||||||
|
<span>👀</span>
|
||||||
|
<span>0 views</span>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block article_image_featured %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block article_body %}
|
||||||
|
<style>
|
||||||
|
/* Blog Article Styles */
|
||||||
|
.article-category {
|
||||||
|
display: inline-block;
|
||||||
|
background: linear-gradient(135deg, #4CAF50, #45a049);
|
||||||
|
color: white;
|
||||||
|
padding: 6px 16px;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 0.85em;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-title {
|
||||||
|
color: #2c5aa0;
|
||||||
|
font-size: 2.5em;
|
||||||
|
margin: 0 0 30px 0;
|
||||||
|
line-height: 1.2;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
gap: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-avatar {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
background: linear-gradient(135deg, #667eea, #764ba2);
|
||||||
|
color: white;
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-details h4 {
|
||||||
|
margin: 0;
|
||||||
|
color: #333;
|
||||||
|
font-size: 1.1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-details p {
|
||||||
|
margin: 2px 0 0 0;
|
||||||
|
color: #666;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-item {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
margin-right: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
color: #666;
|
||||||
|
font-size: 0.9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-item span:first-child {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Article Body Styles */
|
||||||
|
h2 {
|
||||||
|
color: #2c5aa0;
|
||||||
|
font-size: 1.8em;
|
||||||
|
margin: 40px 0 20px 0;
|
||||||
|
border-left: 4px solid #4CAF50;
|
||||||
|
padding-left: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
color: #444;
|
||||||
|
font-size: 1.3em;
|
||||||
|
margin: 30px 0 15px 0;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
line-height: 1.7;
|
||||||
|
margin-bottom: 18px;
|
||||||
|
color: #444;
|
||||||
|
font-size: 1.05em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Callout Boxes */
|
||||||
|
.callout-box {
|
||||||
|
background: linear-gradient(135deg, #e3f2fd, #f1f8e9);
|
||||||
|
border: 2px solid #4CAF50;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 25px;
|
||||||
|
margin: 30px 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout-box h4 {
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
color: #2c5aa0;
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.callout-box p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Quote Boxes */
|
||||||
|
.quote-box {
|
||||||
|
background: #f8f9fa;
|
||||||
|
border-left: 6px solid #4CAF50;
|
||||||
|
padding: 25px;
|
||||||
|
margin: 25px 0;
|
||||||
|
font-style: italic;
|
||||||
|
border-radius: 0 12px 12px 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-box::before {
|
||||||
|
content: '"';
|
||||||
|
font-size: 4em;
|
||||||
|
color: #4CAF50;
|
||||||
|
position: absolute;
|
||||||
|
top: -10px;
|
||||||
|
left: 15px;
|
||||||
|
font-family: Georgia, serif;
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-box p {
|
||||||
|
margin: 0;
|
||||||
|
color: #333;
|
||||||
|
font-size: 1.1em;
|
||||||
|
padding-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Cost Breakdown Styles */
|
||||||
|
.cost-breakdown {
|
||||||
|
background: #fff8e1;
|
||||||
|
border: 2px solid #ffc107;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 25px;
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cost-breakdown h3 {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
color: #e65100;
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cost-item {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 12px 0;
|
||||||
|
border-bottom: 1px dotted #ddd;
|
||||||
|
font-size: 1.05em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cost-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 15px;
|
||||||
|
border-top: 2px solid #ffc107;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cost-item.total {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 1.2em;
|
||||||
|
color: #d32f2f;
|
||||||
|
background: rgba(255, 193, 7, 0.1);
|
||||||
|
padding: 15px;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 10px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Calculation Box */
|
||||||
|
.calculation-box {
|
||||||
|
background: linear-gradient(135deg, #e8f5e8, #f0f4f8);
|
||||||
|
border: 2px dashed #4CAF50;
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 25px;
|
||||||
|
margin: 30px 0;
|
||||||
|
font-family: 'Courier New', monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculation-box h4 {
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
color: #2c5aa0;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculation-box p {
|
||||||
|
margin: 10px 0;
|
||||||
|
color: #333;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Lists */
|
||||||
|
ul {
|
||||||
|
padding-left: 25px;
|
||||||
|
margin: 20px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
li strong {
|
||||||
|
color: #2c5aa0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Links */
|
||||||
|
a {
|
||||||
|
color: #4CAF50;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 500;
|
||||||
|
transition: color 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #45a049;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tags */
|
||||||
|
.tag {
|
||||||
|
display: inline-block;
|
||||||
|
background: #f1f3f4;
|
||||||
|
color: #5f6368;
|
||||||
|
padding: 6px 12px;
|
||||||
|
border-radius: 16px;
|
||||||
|
font-size: 0.85em;
|
||||||
|
margin: 5px 8px 5px 0;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tag:hover {
|
||||||
|
background: #4CAF50;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive Design */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.article-title {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cost-item {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.author-info {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta-item {
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>Sarah thought she was being smart. As an experienced dog trainer with over 15 clients, she'd moved beyond scribbled notes and was proudly using Excel to manage her growing business. "I'm organised," she told herself, "I've got everything in spreadsheets."</p>
|
||||||
|
|
||||||
|
<p>What Sarah didn't realise was that her "organised" system was quietly bleeding money from her business every single day.</p>
|
||||||
|
|
||||||
|
<p>After tracking her activities for three months, Sarah discovered she was losing over £180 per month to spreadsheet inefficiency. That's £2,160 per year – enough to fund a family holiday or invest in proper business equipment.</p>
|
||||||
|
|
||||||
|
<div class="callout-box">
|
||||||
|
<h4>🚨 The Spreadsheet Crisis</h4>
|
||||||
|
<p>Our research of 127 UK dog trainers revealed that <strong>83% are still managing their businesses with spreadsheets</strong>, and they're all paying a hidden price they never calculated.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The True Cost of Spreadsheet Chaos</h2>
|
||||||
|
|
||||||
|
<p>Most dog trainers focus on the obvious costs – rent, insurance, equipment. But there's a silent killer lurking in every Excel-managed training business: operational inefficiency.</p>
|
||||||
|
|
||||||
|
<p>The average UK dog trainer using spreadsheets loses <strong>£2,247 per year</strong> to hidden costs they never even notice. Here's exactly where that money disappears:</p>
|
||||||
|
|
||||||
|
<div class="cost-breakdown">
|
||||||
|
<h3>Monthly Hidden Costs Breakdown:</h3>
|
||||||
|
<div class="cost-item">
|
||||||
|
<span>Time waste (10 hours @ £22/hour)</span>
|
||||||
|
<span>£220</span>
|
||||||
|
</div>
|
||||||
|
<div class="cost-item">
|
||||||
|
<span>Missed appointments (2 per month)</span>
|
||||||
|
<span>£100</span>
|
||||||
|
</div>
|
||||||
|
<div class="cost-item">
|
||||||
|
<span>Lost client follow-ups</span>
|
||||||
|
<span>£80</span>
|
||||||
|
</div>
|
||||||
|
<div class="cost-item">
|
||||||
|
<span>Double-booking errors</span>
|
||||||
|
<span>£60</span>
|
||||||
|
</div>
|
||||||
|
<div class="cost-item">
|
||||||
|
<span>Data recovery/recreation</span>
|
||||||
|
<span>£45</span>
|
||||||
|
</div>
|
||||||
|
<div class="cost-item total">
|
||||||
|
<span><strong>Total Monthly Loss</strong></span>
|
||||||
|
<span><strong>£505</strong></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The Five Hidden Money Drains</h2>
|
||||||
|
|
||||||
|
<h3>1. The Administrative Time Trap</h3>
|
||||||
|
|
||||||
|
<p>Mark tracked his spreadsheet time for two weeks. The results were eye-opening:</p>
|
||||||
|
|
||||||
|
<div class="quote-box">
|
||||||
|
"I couldn't believe it. Between updating client records, checking schedules, and trying to find information, I was spending 2.5 hours every day on admin. That's time I should be training dogs or growing my business." - Mark, Coventry
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>At £22 per hour (the average UK dog trainer rate), that's £55 per day in lost opportunity cost. Over a month, that's <strong>£1,210 in time that could be spent earning money</strong>.</p>
|
||||||
|
|
||||||
|
<h3>2. The Missed Appointment Epidemic</h3>
|
||||||
|
|
||||||
|
<p>Spreadsheets don't send reminders. They don't sync with your phone calendar. They don't notify you when Mrs. Johnson hasn't booked her follow-up session.</p>
|
||||||
|
|
||||||
|
<p>Emma learned this the hard way:</p>
|
||||||
|
|
||||||
|
<div class="quote-box">
|
||||||
|
"I realised I'd lost track of three regular clients. They just... disappeared from my schedule. By the time I noticed and reached out, two had found other trainers. That's £280 per month in recurring revenue, gone." - Emma, Truro
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>Industry data shows that trainers using spreadsheets lose an average of <strong>2.3 clients per month</strong> due to poor follow-up systems.</p>
|
||||||
|
|
||||||
|
<h3>3. The Double-Booking Disaster</h3>
|
||||||
|
|
||||||
|
<p>Nothing damages professional credibility like showing up to find another trainer already working with "your" client, or worse – arriving at an empty park because you mixed up the schedule.</p>
|
||||||
|
|
||||||
|
<div class="quote-box">
|
||||||
|
"I double-booked myself three times in one month. Had to refund one session completely, and nearly lost a client who'd taken time off work. The stress alone wasn't worth it." - James, Leicester
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>4. The Progress Tracking Black Hole</h3>
|
||||||
|
|
||||||
|
<p>Clients pay premium prices for professional dog training because they want to see results. But when your progress tracking consists of scattered notes across multiple spreadsheet tabs, you can't demonstrate the value you're providing.</p>
|
||||||
|
|
||||||
|
<p>Research shows that clients with clear progress visualisation stay 40% longer and refer 60% more often. Spreadsheet users struggle to create compelling progress reports, leading to shorter client relationships and fewer referrals.</p>
|
||||||
|
|
||||||
|
<div class="callout-box">
|
||||||
|
<h4>📊 The Visualisation Problem</h4>
|
||||||
|
<p>Dogs learn through consistent repetition and clear progress markers. When owners can't see measurable improvement, they lose motivation and discontinue training prematurely.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h3>5. The Data Disaster Waiting to Happen</h3>
|
||||||
|
|
||||||
|
<p>Computer crashes. Files corrupt. Versions conflict. Email attachments get lost.</p>
|
||||||
|
|
||||||
|
<div class="quote-box">
|
||||||
|
"My laptop died and took three months of client notes with it. I had some backup somewhere, but it was weeks old. I had to start rebuilding everything from memory and old text messages." - Rachel, Warwick
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>The average cost of recreating lost data? <strong>£540 in time</strong>, plus immeasurable damage to client relationships.</p>
|
||||||
|
|
||||||
|
<h2>The Opportunity Cost Crisis</h2>
|
||||||
|
|
||||||
|
<p>But the real tragedy isn't just what spreadsheet management costs – it's what it prevents.</p>
|
||||||
|
|
||||||
|
<p>While you're wrestling with Excel, your competitors are:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Training more dogs (and earning more money)</li>
|
||||||
|
<li>Building stronger client relationships through consistent communication</li>
|
||||||
|
<li>Creating compelling progress reports that justify premium pricing</li>
|
||||||
|
<li>Following up consistently to maximise client lifetime value</li>
|
||||||
|
<li>Scaling their businesses with systems that actually work</li>
|
||||||
|
<li>Using automated reminders to reduce no-shows</li>
|
||||||
|
<li>Providing client portals for homework and progress tracking</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="callout-box">
|
||||||
|
<h4>🎯 The Scaling Problem</h4>
|
||||||
|
<p>Every successful dog trainer reaches a point where spreadsheets become impossible to manage. The trainers who prepare for growth early are the ones who build sustainable, profitable businesses.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The Modern Alternative</h2>
|
||||||
|
|
||||||
|
<p>The most successful dog trainers in 2025 aren't using spreadsheets. They've moved to purpose-built business management systems that handle the complexity of modern dog training businesses.</p>
|
||||||
|
|
||||||
|
<p>These trainers report:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><strong>75% reduction</strong> in administrative time</li>
|
||||||
|
<li><strong>40% increase</strong> in client retention rates</li>
|
||||||
|
<li><strong>60% more referrals</strong> through better client communication</li>
|
||||||
|
<li><strong>Zero lost data</strong> through cloud-based systems</li>
|
||||||
|
<li><strong>100% elimination</strong> of double-booking errors</li>
|
||||||
|
<li><strong>50% faster progress</strong> through consistent tracking</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Case Study: The Transformation</h2>
|
||||||
|
|
||||||
|
<p>Lisa made the switch 2 months ago:</p>
|
||||||
|
|
||||||
|
<div class="quote-box">
|
||||||
|
"I was spending 15 hours a week on admin with my spreadsheets. Now it's 3 hours. That's 12 extra hours I can spend training dogs or with my family. I've taken on 8 new clients just with the time I've saved, and my income has increased by 35%."
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>Her business metrics tell the story:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><strong>Before:</strong> 22 active clients, £2,800 monthly revenue, 15 hours weekly admin</li>
|
||||||
|
<li><strong>After:</strong> 35 active clients, £4,200 monthly revenue, 3 hours weekly admin</li>
|
||||||
|
<li><strong>ROI:</strong> The software pays for itself in days through saved time alone</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Calculate Your Hidden Costs</h2>
|
||||||
|
|
||||||
|
<p>Want to know exactly how much your spreadsheet system is costing your business? Here's a simple calculation:</p>
|
||||||
|
|
||||||
|
<div class="calculation-box">
|
||||||
|
<h4>Your Personal Cost Calculator:</h4>
|
||||||
|
<form id="calculator">
|
||||||
|
<p><strong>Weekly admin time:</strong> _____ hours × £22 = £_____ per week</p>
|
||||||
|
<p><strong>Missed appointments:</strong> _____ per month × £50 = £_____ monthly</p>
|
||||||
|
<p><strong>Lost follow-ups:</strong> _____ clients × £140 lifetime value = £_____</p>
|
||||||
|
<p><strong>Your annual hidden cost:</strong> £_____ + (£_____ × 12) + £_____ = £_____</p>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>Most trainers are shocked by the results. The average comes out to <strong>£2,247 per year</strong> – enough to fund significant business growth or personal goals.</p>
|
||||||
|
|
||||||
|
<h2>The Path Forward</h2>
|
||||||
|
|
||||||
|
<p>The choice is clear: continue losing £2,000+ per year to spreadsheet inefficiency, or invest in a system that pays for itself within the first month.</p>
|
||||||
|
|
||||||
|
<p>Professional dog training is evolving. Client expectations are rising. Competition is increasing.</p>
|
||||||
|
|
||||||
|
<p>The trainers who thrive in 2025 and beyond will be those who embrace modern business management tools and focus their energy on what they do best: transforming the relationships between dogs and their families.</p>
|
||||||
|
|
||||||
|
<div class="callout-box">
|
||||||
|
<h4>🚀 Ready to Stop the Money Drain?</h4>
|
||||||
|
<p>Join the growing community of UK dog trainers who've discovered the power of purpose-built business management systems. Calculate your hidden costs and see how much you could save.</p>
|
||||||
|
<!-- <p><a href="#calculator">Get Your Free Cost Assessment →</a></p> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2>The Bottom Line</h2>
|
||||||
|
|
||||||
|
<p>Spreadsheet management isn't just inefficient – it's expensive, stressful, and prevents you from growing your business to its full potential.</p>
|
||||||
|
|
||||||
|
<p>Every day you stick with spreadsheets is another day you're:</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>Losing money to hidden inefficiencies</li>
|
||||||
|
<li>Missing opportunities to serve more clients</li>
|
||||||
|
<li>Risking data loss and client relationships</li>
|
||||||
|
<li>Working harder instead of smarter</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>The most successful dog trainers in the UK have already made the switch. They're earning more, working less, and building sustainable businesses that scale.</p>
|
||||||
|
|
||||||
|
<p>The question isn't whether you can afford to upgrade your business management system.</p>
|
||||||
|
|
||||||
|
<p>The question is: can you afford not to?</p>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block article_tags %}
|
||||||
|
<a href="#" class="tag">spreadsheet costs</a>
|
||||||
|
<a href="#" class="tag">dog training business</a>
|
||||||
|
<a href="#" class="tag">business efficiency</a>
|
||||||
|
<a href="#" class="tag">time management</a>
|
||||||
|
<a href="#" class="tag">professional tools</a>
|
||||||
|
<a href="#" class="tag">business growth</a>
|
||||||
|
<a href="#" class="tag">UK dog trainers</a>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block author_bio %}
|
||||||
|
<div class="author-bio-avatar">T</div>
|
||||||
|
<h4>Teddy Middleton-Smith</h4>
|
||||||
|
<p>Edward (Teddy) Middleton-Smith is the founder of Fetch Metrics and a software engineer who discovered his passion for dog training through his own rescue dogs. With over 8 years of hands-on training experience and 6+ years in professional software development, Teddy combines technical expertise with real-world training knowledge to solve the everyday challenges facing professional dog trainers.</p>
|
||||||
|
<p>After witnessing firsthand how outdated systems were holding back talented trainers, Teddy set out to build purpose-designed software that actually understands the unique needs of the dog training industry. When he's not coding or writing about business growth strategies, you'll find him working with local rescue organisations or perfecting recall training with his own pack.</p>
|
||||||
|
<p>Teddy holds a First Class Masters degree in Mechanical Engineering and believes that the best technology solutions come from deeply understanding the problems they're meant to solve.</p>
|
||||||
|
{% endblock %}
|
||||||
@@ -32,87 +32,26 @@
|
|||||||
<div class="{{ model.FLAG_CONTAINER }}">
|
<div class="{{ model.FLAG_CONTAINER }}">
|
||||||
|
|
||||||
<div class="blog-grid">
|
<div class="blog-grid">
|
||||||
<!-- Featured Post -->
|
<div>
|
||||||
<article class="featured-post">
|
<!-- Featured Post -->
|
||||||
<div class="featured-image">🎯</div>
|
<article class="featured-post">
|
||||||
<div class="featured-content">
|
<div class="featured-image">🎯</div>
|
||||||
<span class="post-category">Training Techniques</span>
|
<div class="featured-content">
|
||||||
<h2>Why Every Professional Dog Trainer Needs a Command Dictionary in 2025</h2>
|
<span class="post-category">Training Techniques</span>
|
||||||
<div class="post-meta">
|
<h2>Why Every Professional Dog Trainer Needs a Command Dictionary in 2025</h2>
|
||||||
<span>📅 10th August 2025</span>
|
<div class="post-meta">
|
||||||
<span>⏱️ 12 min read</span>
|
<span>📅 10th August 2025</span>
|
||||||
<span>👤 <a href="{{ model.URL_LINKEDIN_PERSONAL }}">Teddy Middleton-Smith</a></span>
|
<span>⏱️ 12 min read</span>
|
||||||
|
<span>👤 <a href="{{ model.URL_LINKEDIN_PERSONAL }}">Teddy Middleton-Smith</a></span>
|
||||||
|
</div>
|
||||||
|
<p class="post-excerpt">
|
||||||
|
Discover how UK dog trainers use Fetch Metrics to maximise client consistency at home.
|
||||||
|
</p>
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_WHY_EVERY_TRAINER_NEEDS_A_COMMAND_DICTIONARY }}">Read Full Article</a>
|
||||||
</div>
|
</div>
|
||||||
<p class="post-excerpt">
|
</article>
|
||||||
Discover how UK dog trainers use Fetch Metrics to maximise client consistency at home.
|
|
||||||
</p>
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_WHY_EVERY_TRAINER_NEEDS_A_COMMAND_DICTIONARY }}">Read Full Article</a>
|
|
||||||
</div>
|
|
||||||
</article>
|
|
||||||
|
|
||||||
<!-- Sidebar -->
|
<!-- Newsletter Sign-up -->
|
||||||
<aside class="sidebar">
|
|
||||||
<!-- Categories -->
|
|
||||||
<div class="sidebar-widget">
|
|
||||||
<h3 class="widget-title">Categories</h3>
|
|
||||||
<ul class="category-list">
|
|
||||||
<!--
|
|
||||||
<li>
|
|
||||||
<a href="#">Business Management</a>
|
|
||||||
<span class="post-count">12</span>
|
|
||||||
</li>
|
|
||||||
-->
|
|
||||||
<li>
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_CATEGORY_TRAINING_TECHNIQUES }}" class="{{ model.FLAG_NAV_BLOG_CATEGORY_TRAINING_TECHNIQUES }}">Training Techniques</a>
|
|
||||||
<span class="post-count">2</span>
|
|
||||||
</li>
|
|
||||||
<!--
|
|
||||||
<li>
|
|
||||||
<a href="#">Client Relations</a>
|
|
||||||
<span class="post-count">15</span>
|
|
||||||
</li>
|
|
||||||
-->
|
|
||||||
<li>
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH }}" class="{{ model.FLAG_NAV_BLOG_CATEGORY_MARKETING_AND_GROWTH }}">Marketing & Growth</a>
|
|
||||||
<span class="post-count">1</span>
|
|
||||||
</li>
|
|
||||||
<!--
|
|
||||||
<li>
|
|
||||||
<a href="#">Technology & Tools</a>
|
|
||||||
<span class="post-count">9</span>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#">Industry News</a>
|
|
||||||
<span class="post-count">4</span>
|
|
||||||
</li>
|
|
||||||
-->
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Recent Posts -->
|
|
||||||
<div class="sidebar-widget">
|
|
||||||
<h3 class="widget-title">Recent Posts</h3>
|
|
||||||
<ul class="recent-posts">
|
|
||||||
<li class="recent-post-item">
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_WHY_EVERY_TRAINER_NEEDS_A_COMMAND_DICTIONARY }}">Why Every Professional Dog Trainer Needs a Command Dictionary in 2025</a>
|
|
||||||
<div class="recent-post-date">10th August 2025</div>
|
|
||||||
</li>
|
|
||||||
<li class="recent-post-item">
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}">How to Scale Your Dog Training Business: from 25 to 100+ Clients</a>
|
|
||||||
<div class="recent-post-date">9th August 2025</div>
|
|
||||||
</li>
|
|
||||||
<li class="recent-post-item">
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS }}">The Science Behind Dog Training Assessments: How to Track Real Progress</a>
|
|
||||||
<div class="recent-post-date">9th August 2025</div>
|
|
||||||
</li>
|
|
||||||
<li class="recent-post-item">
|
|
||||||
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}" class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}">How to Scale Your Dog Training Business: From Solo Trainer to Multi-Trainer Success</a>
|
|
||||||
<div class="recent-post-date">8th August 2025</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Newsletter Signup -->
|
|
||||||
<div class="sidebar-widget">
|
<div class="sidebar-widget">
|
||||||
<h3 class="widget-title">Weekly Business Tips</h3>
|
<h3 class="widget-title">Weekly Business Tips</h3>
|
||||||
<p style="margin-bottom: 1rem; color: #666;">Get proven strategies delivered to your inbox every Tuesday. Join 2,400+ successful dog trainers.</p>
|
<p style="margin-bottom: 1rem; color: #666;">Get proven strategies delivered to your inbox every Tuesday. Join 2,400+ successful dog trainers.</p>
|
||||||
@@ -148,11 +87,104 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Sidebar -->
|
||||||
|
<aside class="sidebar">
|
||||||
|
<!-- Categories -->
|
||||||
|
<div class="sidebar-widget">
|
||||||
|
<h3 class="widget-title">Categories</h3>
|
||||||
|
<ul class="category-list">
|
||||||
|
<li>
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_CATEGORY_BUSINESS_MANAGEMENT }}">Business Management</a>
|
||||||
|
<span class="post-count">1</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_CATEGORY_TRAINING_TECHNIQUES }}" class="{{ model.FLAG_NAV_BLOG_CATEGORY_TRAINING_TECHNIQUES }}">Training Techniques</a>
|
||||||
|
<span class="post-count">2</span>
|
||||||
|
</li>
|
||||||
|
<!--
|
||||||
|
<li>
|
||||||
|
<a href="#">Client Relations</a>
|
||||||
|
<span class="post-count">15</span>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
<li>
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_CATEGORY_MARKETING_AND_GROWTH }}" class="{{ model.FLAG_NAV_BLOG_CATEGORY_MARKETING_AND_GROWTH }}">Marketing & Growth</a>
|
||||||
|
<span class="post-count">1</span>
|
||||||
|
</li>
|
||||||
|
<!--
|
||||||
|
<li>
|
||||||
|
<a href="#">Technology & Tools</a>
|
||||||
|
<span class="post-count">9</span>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#">Industry News</a>
|
||||||
|
<span class="post-count">4</span>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Recent Posts -->
|
||||||
|
<div class="sidebar-widget">
|
||||||
|
<h3 class="widget-title">Recent Posts</h3>
|
||||||
|
<ul class="recent-posts">
|
||||||
|
<li class="recent-post-item">
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR }}"
|
||||||
|
class="recent-post-title"
|
||||||
|
>The Hidden Costs of Spreadsheet Dog Training: Why UK Trainers Are Losing £2,000+ Per Year</a>
|
||||||
|
<div class="recent-post-date">16th August 2025</div>
|
||||||
|
</li>
|
||||||
|
<li class="recent-post-item">
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_WHY_EVERY_PROFESSIONAL_TRAINER_NEEDS_A_COMMAND_DICTIONARY_IN_2025 }}"
|
||||||
|
class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_WHY_EVERY_TRAINER_NEEDS_A_COMMAND_DICTIONARY }}"
|
||||||
|
>Why Every Professional Dog Trainer Needs a Command Dictionary in 2025</a>
|
||||||
|
<div class="recent-post-date">10th August 2025</div>
|
||||||
|
</li>
|
||||||
|
<li class="recent-post-item">
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}"
|
||||||
|
class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_25_TO_100_PLUS_CLIENTS }}"
|
||||||
|
>How to Scale Your Dog Training Business: from 25 to 100+ Clients</a>
|
||||||
|
<div class="recent-post-date">9th August 2025</div>
|
||||||
|
</li>
|
||||||
|
<li class="recent-post-item">
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS_HOW_TRACK_REAL_PROGRESS }}"
|
||||||
|
class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_THE_SCIENCE_BEHIND_DOG_TRAINING_ASSESSMENTS }}"
|
||||||
|
>The Science Behind Dog Training Assessments: How to Track Real Progress</a>
|
||||||
|
<div class="recent-post-date">9th August 2025</div>
|
||||||
|
</li>
|
||||||
|
<!--
|
||||||
|
<li class="recent-post-item">
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}"
|
||||||
|
class="recent-post-title {{ model.FLAG_NAV_BLOG_ARTICLE_HOW_TO_SCALE_YOUR_DOG_TRAINING_BUSINESS_FROM_SOLO_TO_MULTI_TRAINER_SUCCESS }}"
|
||||||
|
>How to Scale Your Dog Training Business: From Solo Trainer to Multi-Trainer Success</a>
|
||||||
|
<div class="recent-post-date">8th August 2025</div>
|
||||||
|
</li>
|
||||||
|
-->
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- More Blog Posts -->
|
<!-- More Blog Posts -->
|
||||||
<section class="blog-posts-grid">
|
<section class="blog-posts-grid">
|
||||||
|
<article class="blog-post-card">
|
||||||
|
<div class="post-image">📊</div>
|
||||||
|
<div class="post-content">
|
||||||
|
<span class="post-category">Business Management</span>
|
||||||
|
<h3>The Hidden Costs of Spreadsheet Dog Training: Why UK Trainers Are Losing £2,000+ Per Year</h3>
|
||||||
|
<div class="post-meta">
|
||||||
|
<span>📅 16th August 2025</span>
|
||||||
|
<span>⏱️ 12 min read</span>
|
||||||
|
</div>
|
||||||
|
<p class="post-excerpt">
|
||||||
|
Discover the silent killer lurking in every Excel-managed training business: operational inefficiency.
|
||||||
|
</p>
|
||||||
|
<a href="{{ model.HASH_PAGE_BLOG_ARTICLE_THE_HIDDEN_COSTS_OF_SPREADSHEET_DOG_TRAINING_WHY_UK_TRAINERS_ARE_LOSING_2000_PLUS_POUNDS_PER_YEAR }}" class="read-more">Read More</a>
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
|
||||||
<article class="blog-post-card">
|
<article class="blog-post-card">
|
||||||
<div class="post-image">📊</div>
|
<div class="post-image">📊</div>
|
||||||
<div class="post-content">
|
<div class="post-content">
|
||||||
|
|||||||