diff --git a/app.py b/app.py index 6be4356..a146795 100644 --- a/app.py +++ b/app.py @@ -137,7 +137,6 @@ app.register_blueprint(routes_legal) app.register_blueprint(routes_user) - @app.template_filter('console_log') def console_log(value): Helper_App.console_log(value) diff --git a/business_objects/dog/command_modality.py b/business_objects/dog/command_modality.py index 3738915..15d1abb 100644 --- a/business_objects/dog/command_modality.py +++ b/business_objects/dog/command_modality.py @@ -40,31 +40,31 @@ class Command_Modality(SQLAlchemy_ABC, Base): @classmethod def from_db_command_modality(cls, query_row): _m = f'{cls.__qualname__}.from_db_command_modality' - category = cls() - category.id_command_modality = query_row[0] - category.code = query_row[1] - category.name = query_row[2] - category.active = av.input_bool(query_row[3], 'active', _m) - # command.created_on = query_row[7] - return category + command_modality = cls() + command_modality.id_command_modality = query_row[0] + command_modality.code = query_row[1] + command_modality.name = query_row[2] + command_modality.active = av.input_bool(query_row[3], 'active', _m) + # command_modality.created_on = query_row[7] + return command_modality @classmethod def from_db_distraction(cls, query_row): _m = f'{cls.__qualname__}.from_db_distraction' - level = cls() - level.id_command_modality = query_row[2] - level.name = query_row[3] - level.active = True - return level + command_modality = cls() + command_modality.id_command_modality = query_row[2] + command_modality.name = query_row[3] + command_modality.active = True + return command_modality @classmethod def from_db_assessment_command_modality_link(cls, query_row): _m = f'{cls.__qualname__}.from_db_assessment_command_modality_link' - level = cls() - level.id_command_modality = query_row[7] - level.name = query_row[8] - level.active = True - return level + command_modality = cls() + command_modality.id_command_modality = query_row[7] + command_modality.name = query_row[8] + command_modality.active = True + return command_modality @classmethod def from_json(cls, json): diff --git a/business_objects/dog/company.py b/business_objects/dog/company.py new file mode 100644 index 0000000..d09a752 --- /dev/null +++ b/business_objects/dog/company.py @@ -0,0 +1,183 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: Business Objects +Feature: Company Business Object +""" + +# internal +from business_objects.base import Base +from business_objects.db_base import SQLAlchemy_ABC, Get_Many_Parameters_Base +import lib.argument_validation as av +from extensions import db +from helpers.helper_app import Helper_App +# external +from dataclasses import dataclass +from typing import ClassVar + + +class Company(SQLAlchemy_ABC, Base): + ATTR_ID_COMPANY: ClassVar[str] = 'id_company' + FLAG_COMPANY: ClassVar[str] = 'company' + NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_COMPANY + NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME + + __tablename__ = 'DOG_Company' + __table_args__ = { 'extend_existing': True } + + id_company = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(250)) + website = db.Column(db.String(1000)) + active = db.Column(db.Boolean) + + def __init__(self): + self.id_company = 0 + self.is_new = False + super().__init__() + + @classmethod + def from_db_company(cls, query_row): + _m = f'{cls.__qualname__}.from_db_company' + company = cls() + company.id_company = query_row[0] + company.name = query_row[1] + company.website = query_row[2] + company.active = av.input_bool(query_row[3], 'active', _m) + # company.created_on = query_row[7] + return company + + @classmethod + def from_db_user(cls, query_row): + _m = f'{cls.__qualname__}.from_db_user' + company = cls() + company.id_company = query_row[6] + company.name = query_row[7] + company.website = query_row[8] + company.active = True + return company + + @classmethod + def from_json(cls, json): + _m = 'Company.from_json' + company = cls() + if json is None: return company + company.id_company = json.get(cls.ATTR_ID_COMPANY, -1) + company.name = json[cls.FLAG_NAME] + company.website = json[cls.FLAG_WEBSITE] + company.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) + return company + + + def to_json(self): + as_json = { + **self.get_shared_json_attributes(self) + , self.ATTR_ID_COMPANY: self.id_company + , self.FLAG_NAME: self.name + , self.FLAG_WEBSITE: self.website + , self.FLAG_ACTIVE: self.active + } + return as_json + + def __repr__(self): + return f''' +{self.__class__.__name__}( + {self.FLAG_COMPANY}: {self.id_company} + {self.FLAG_NAME}: {self.name} + {self.FLAG_WEBSITE}: {self.website} + {self.FLAG_ACTIVE}: {self.active} +) + ''' + + +class Company_Temp(db.Model, Base): + __tablename__ = 'DOG_Company_Temp' + __table_args__ = { 'extend_existing': True } + id_temp = db.Column(db.Integer, primary_key=True) + id_company = db.Column(db.Integer) + name = db.Column(db.String(250)) + website = db.Column(db.String(1000)) + active = db.Column(db.Boolean) + guid: str = db.Column(db.String(36)) + + def __init__(self): + super().__init__() + + @classmethod + def from_company(cls, company): + _m = 'Company_Temp.from_Company' + temp = cls() + temp.id_company = company.id_company + temp.name = company.name + temp.website = company.website + temp.active = company.active + return temp + + +class Parameters_Company(Get_Many_Parameters_Base): + get_all_company: bool + get_inactive_company: bool + ids_company: str + names_company: str + websites_company: str + require_all_id_search_filters_met: bool + require_any_id_search_filters_met: bool + require_all_non_id_search_filters_met: bool + require_any_non_id_search_filters_met: bool + + @classmethod + def get_default(cls): + return cls( + get_all_company = True + , get_inactive_company = False + , ids_company = '' + , names_company = '' + , websites_company = '' + , require_all_id_search_filters_met = True + , require_any_id_search_filters_met = True + , require_all_non_id_search_filters_met = False + , require_any_non_id_search_filters_met = True + ) + + @classmethod + def from_json(cls, json): + return cls( + get_all_company = json.get('a_get_all_company', False) + , get_inactive_company = json.get('a_get_inactive_company', False) + , ids_company = json.get('a_ids_company', '') + , names_company = json.get('a_names_company', '') + , websites_company = json.get('a_websites_company', '') + , 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_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False) + , require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True) + ) + + """ + @classmethod + def from_form_filters_company(cls, form): + av.val_instance(form, 'form', 'Parameters_Company.from_form_filters_company', Filters_Company) + 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_Company.from_form_filters_company") + filters = cls.get_default() + filters.get_all_company = True + filters.get_inactive_company = not active_only + filters.ids_company = '' + filters.names_company = form.search.data if has_filter_search_text else '' + filters.notes_company = form.search.data if has_filter_search_text else '' + return filters + """ + + def to_json(self): + return { + 'a_get_all_company': self.get_all_company + , 'a_get_inactive_company': self.get_inactive_company + , 'a_ids_company': self.ids_company + , 'a_names_company': self.names_company + , 'a_websites_company': self.websites_company + , 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met + , 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met + , 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met + , 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met + } diff --git a/business_objects/dog/user.py b/business_objects/dog/user.py index eb731fc..a78744e 100644 --- a/business_objects/dog/user.py +++ b/business_objects/dog/user.py @@ -10,6 +10,7 @@ Feature: User Business Object # internal from business_objects.base import Base from business_objects.db_base import SQLAlchemy_ABC, Get_Many_Parameters_Base +from business_objects.dog.company import Company import lib.argument_validation as av from extensions import db from forms.base import Form_Filters_User @@ -20,6 +21,14 @@ from typing import ClassVar, Optional class User(SQLAlchemy_ABC, Base): + ATTR_ID_USER_AUTH0: ClassVar[str] = 'id_user_auth0' + FLAG_CAN_ADMIN_DOG: ClassVar[str] = 'can_admin_dog' + FLAG_CAN_ADMIN_USER: ClassVar[str] = 'can_admin_user' + FLAG_FIRSTNAME: ClassVar[str] = 'firstname' + FLAG_IS_EMAIL_VERIFIED: ClassVar[str] = 'is_email_verified' + FLAG_IS_SUPER_USER: ClassVar[str] = 'is_super_user' + FLAG_PRIORITY_ACCESS_LEVEL: ClassVar[str] = 'priority_access_level' + FLAG_SURNAME: ClassVar[str] = 'surname' NAME_ATTR_OPTION_VALUE: ClassVar[str] = Base.ATTR_ID_USER NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME @@ -33,6 +42,9 @@ class User(SQLAlchemy_ABC, Base): email = db.Column(db.String(250)) is_email_verified = db.Column(db.Boolean) is_super_user = db.Column(db.Boolean) + priority_access_level = db.Column(db.Integer) + can_admin_dog = db.Column(db.Boolean) + can_admin_user = db.Column(db.Boolean) is_new = db.Column(db.Boolean) def __init__(self): @@ -40,6 +52,8 @@ class User(SQLAlchemy_ABC, Base): self.is_new = False self.can_admin_dog = False self.can_admin_user = False + self.id_company = None + self.company = None super().__init__() @classmethod @@ -51,11 +65,14 @@ class User(SQLAlchemy_ABC, Base): user.firstname = query_row[2] user.surname = query_row[3] user.email = query_row[4] - user.is_email_verified = av.input_bool(query_row[5], 'is_email_verified', _m) - user.is_super_user = av.input_bool(query_row[6], 'is_super_user', _m) - user.can_admin_dog = av.input_bool(query_row[7], 'can_admin_dog', _m) - user.can_admin_user = av.input_bool(query_row[8], 'can_admin_user', _m) + user.is_email_verified = av.input_bool(query_row[5], cls.FLAG_IS_EMAIL_VERIFIED, _m) + user.id_company = query_row[6] + user.is_super_user = av.input_bool(query_row[9], cls.FLAG_IS_SUPER_USER, _m) + user.priority_access_level = query_row[10] + user.can_admin_dog = av.input_bool(query_row[11], cls.FLAG_CAN_ADMIN_DOG, _m) + user.can_admin_user = av.input_bool(query_row[12], cls.FLAG_CAN_ADMIN_USER, _m) # user.is_new = av.input_bool(query_row[9], 'is_new', _m) + user.company = Company.from_db_user(query_row) return user @classmethod @@ -67,71 +84,84 @@ class User(SQLAlchemy_ABC, Base): user.surname = query_row[9] return user - @staticmethod - def from_json(json): - _m = 'User.from_json' - user = User() + @classmethod + def from_json(cls, json): + _m = f'{cls.__qualname__}.from_json' + user = cls() if json is None: return user - user.id_user = json['id_user'] - user.id_user_auth0 = json['id_user_auth0'] - user.firstname = json['firstname'] - user.surname = json['surname'] - user.email = json['email'] - user.is_email_verified = av.input_bool(json['is_email_verified'], 'is_email_verified', _m) - user.is_super_user = av.input_bool(json['is_super_user'], 'is_super_user', _m) - - user.can_admin_dog = user.is_super_user - + + user.id_user = json[cls.ATTR_ID_USER] + user.id_user_auth0 = json[cls.ATTR_ID_USER_AUTH0] + user.firstname = json[cls.FLAG_FIRSTNAME] + user.surname = json[cls.FLAG_SURNAME] + user.email = json[cls.FLAG_EMAIL] + user.is_email_verified = av.input_bool(json[cls.FLAG_IS_EMAIL_VERIFIED], cls.FLAG_IS_EMAIL_VERIFIED, _m) + user.id_company = json[Company.ATTR_ID_COMPANY] + user.is_super_user = av.input_bool(json[cls.FLAG_IS_SUPER_USER], cls.FLAG_IS_SUPER_USER, _m) + user.can_admin_dog = user.is_super_user or json[cls.FLAG_CAN_ADMIN_DOG] + user.can_admin_user = user.is_super_user or json[cls.FLAG_CAN_ADMIN_USER] + user.company = Company.from_json(json[Company.FLAG_COMPANY]) return user - @staticmethod - def from_json_auth0(json): - _m = 'User.from_json_auth0' - user = User() + @classmethod + def from_json_auth0(cls, json): + _m = f'{cls.__qualname__}.from_json_auth0' + user = cls() if json is None: return user user_info = json['userinfo'] user.id_user = None user.id_user_auth0 = user_info['sub'] user.firstname = None user.surname = None - user.email = user_info['email'] - user.is_email_verified = av.input_bool(user_info['email_verified'], 'is_email_verified', _m) + user.email = user_info[cls.FLAG_EMAIL] + user.is_email_verified = av.input_bool(user_info['email_verified'], cls.FLAG_IS_EMAIL_VERIFIED, _m) user.is_super_user = None user.can_admin_dog = user.is_super_user + user.can_admin_user = user.is_super_user return user def to_json(self): as_json = { **self.get_shared_json_attributes(self) - , 'id_user': self.id_user - , 'id_user_auth0': self.id_user_auth0 - , 'firstname': self.firstname - , 'surname': self.surname + , self.ATTR_ID_USER: self.id_user + , self.ATTR_ID_USER_AUTH0: self.id_user_auth0 + , self.FLAG_FIRSTNAME: self.firstname + , self.FLAG_SURNAME: self.surname , self.FLAG_NAME: self.get_name() - , 'email': self.email - , 'is_email_verified': self.is_email_verified - , 'is_super_user': self.is_super_user + , self.FLAG_EMAIL: self.email + , self.FLAG_IS_EMAIL_VERIFIED: self.is_email_verified + , self.FLAG_IS_SUPER_USER: self.is_super_user + , self.FLAG_PRIORITY_ACCESS_LEVEL: self.priority_access_level + , self.FLAG_CAN_ADMIN_DOG: self.can_admin_dog + , self.FLAG_CAN_ADMIN_USER: self.can_admin_user + , Company.ATTR_ID_COMPANY: self.id_company + , Company.FLAG_COMPANY: self.company.to_json() } return as_json def __repr__(self): return f''' - id_user: {self.id_user} - id_user_auth0: {self.id_user_auth0} - firstname: {self.firstname} - surname: {self.surname} - email: {self.email} - is_email_verified: {self.is_email_verified} - is_super_user: {self.is_super_user} - ''' +User ( + {self.ATTR_ID_USER}: {self.id_user} + , {self.ATTR_ID_USER_AUTH0}: {self.id_user_auth0} + , {self.FLAG_FIRSTNAME}: {self.firstname} + , {self.FLAG_SURNAME}: {self.surname} + , {self.FLAG_NAME}: {self.get_name()} + , {self.FLAG_EMAIL}: {self.email} + , {self.FLAG_IS_EMAIL_VERIFIED}: {self.is_email_verified} + , {self.FLAG_IS_SUPER_USER}: {self.is_super_user} + , {self.FLAG_PRIORITY_ACCESS_LEVEL}: {self.priority_access_level} + , {self.FLAG_CAN_ADMIN_DOG}: {self.can_admin_dog} + , {self.FLAG_CAN_ADMIN_USER}: {self.can_admin_user} +) ''' def get_is_logged_in(self): return (self.id_user > 0 and self.id_user != Base.ID_USER_GUEST) def get_name(self): - return f'{self.firstname} {self.surname}' + return f'{"" if self.firstname is None else self.firstname} {"" if self.surname is None else self.surname}' class User_Temp(db.Model, Base): __tablename__ = 'DOG_User_Temp' @@ -162,6 +192,9 @@ class Parameters_User(Get_Many_Parameters_Base): ids_user_auth0: str names_user: str emails_user: str + get_all_company: bool + get_inactive_company: bool + ids_company: str require_all_id_search_filters_met: bool require_any_id_search_filters_met: bool require_all_non_id_search_filters_met: bool @@ -192,8 +225,9 @@ class Parameters_User(Get_Many_Parameters_Base): filters.get_inactive_user = False filters.ids_user = '' if user.id_user is None else str(user.id_user) filters.ids_user_auth0 = user.id_user_auth0 - filters.names_user = f'{user.firstname} {user.surname}' + filters.names_user = user.get_name() filters.emails_user = user.email + filters.ids_company = f'{user.id_company if user.id_company is not None else ""}' return filters @classmethod @@ -207,6 +241,9 @@ class Parameters_User(Get_Many_Parameters_Base): , ids_user_auth0 = '' , names_user = '' , emails_user = '' + , get_all_company = True + , get_inactive_company = False + , ids_company = '' , require_all_id_search_filters_met = True , require_any_id_search_filters_met = True , require_all_non_id_search_filters_met = False @@ -226,12 +263,16 @@ class Parameters_User(Get_Many_Parameters_Base): , 'a_ids_user_auth0': self.ids_user_auth0 , 'a_names_user': self.names_user , 'a_emails_user': self.emails_user + , 'a_get_all_company': self.get_all_company + , 'a_get_inactive_company': self.get_inactive_company + , 'a_ids_company': self.ids_company , 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met , 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met , 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met , 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met } +""" class User_Permission_Evaluation(db.Model): __tablename__ = 'DOG_User_Permission_Evaluation' __table_args__ = { 'extend_existing': True } @@ -276,3 +317,4 @@ class User_Permission_Evaluation(db.Model): can_edit: {self.can_edit} can_admin: {self.can_admin} ''' +""" \ No newline at end of file diff --git a/controllers/user/user.py b/controllers/user/user.py index 3e61836..4a3b3d3 100644 --- a/controllers/user/user.py +++ b/controllers/user/user.py @@ -115,7 +115,7 @@ def login_callback(): error_description = request.args.get(Model_View_User.FLAG_ERROR_DESCRIPTION_OAUTH) error_text = f'Error: {error_state}: {error_description}' Helper_App.console_log(error_text) - return login() + return redirect(f"{current_app.config['URL_HOST']}{hash_callback}") # login() token = None try: token = oauth.auth0.authorize_access_token() @@ -123,7 +123,7 @@ def login_callback(): Helper_App.console_log(f"Error: {str(e)}") session[current_app.config['ID_TOKEN_USER']] = token user = User.from_json_auth0(token) - # Helper_App.console_log(f'user: {user}') + Helper_App.console_log(f'user: {user}') filters = Parameters_User.from_user(user) datastore_user = DataStore_User() users, errors = datastore_user.get_many_user(filters, user) @@ -133,10 +133,11 @@ def login_callback(): Helper_App.console_log(f'user ({str(type(user))}): {user}') Helper_App.console_log(f'user key: {Model_View_Base.FLAG_USER}') user_json = user.to_json() + Helper_App.console_log(f'User JSON: {user_json}') session[Model_View_Base.FLAG_USER] = user_json Helper_App.console_log(f'user stored on session') except: - Helper_App.console_log(f'User not found: {Parameters_User}\nDatabase query error: {errors}') + Helper_App.console_log(f'User not found: {filters}\nDatabase query error: {errors}') try: hash_callback = token.get('hash_callback') @@ -149,7 +150,7 @@ def login_callback(): except: Helper_App.console_log("get hash callback failed") - Helper_App.console_log(f'user session: {session[Model_View_Base.FLAG_USER]}') + Helper_App.console_log(f'user session: {session.get(Model_View_Base.FLAG_USER, "(Key not found)")}') return redirect(f"{current_app.config['URL_HOST']}{hash_callback}") except Exception as e: return jsonify({Model_View_Base.FLAG_STATUS: Model_View_Base.FLAG_FAILURE, Model_View_Base.FLAG_MESSAGE: f'Controller error.\n{e}'}) @@ -171,18 +172,10 @@ def logout(): def logout_callback(): return redirect(url_for('routes_dog_home.home')) -@routes_user.route("/account") +@routes_user.route(Model_View_User.HASH_PAGE_USER_ACCOUNT) def user(): try: model = Model_View_User() - for currency in model.currencies: - if currency.id_currency == model.user.id_currency_default: - model.user.currency_default = currency - break - for region in model.regions: - if region.id_region == model.user.id_region_default: - model.user.region_default = region - break model.users = [model.user] if not model.is_user_logged_in: return redirect(url_for('routes_dog_home.home')) diff --git a/datastores/datastore_base.py b/datastores/datastore_base.py index d46e045..6904f71 100644 --- a/datastores/datastore_base.py +++ b/datastores/datastore_base.py @@ -65,8 +65,10 @@ class DataStore_Base(BaseModel): def get_user_session(): Helper_App.console_log('DataStore_Base.get_user_session') user = User.from_json(session.get(User.FLAG_USER)) + """ if user.id_user <= 0: user.id_user = 3 + """ return user @staticmethod diff --git a/datastores/datastore_user.py b/datastores/datastore_user.py index 30adda2..6b85234 100644 --- a/datastores/datastore_user.py +++ b/datastores/datastore_user.py @@ -14,7 +14,7 @@ Datastore for Users # from routes import bp_home import lib.argument_validation as av from business_objects.sql_error import SQL_Error -from business_objects.dog.user import User, Parameters_User, User_Permission_Evaluation +from business_objects.dog.user import User, Parameters_User from datastores.datastore_base import DataStore_Base from helpers.helper_app import Helper_App from helpers.helper_db_mysql import Helper_DB_MySQL diff --git a/models/model_view_user.py b/models/model_view_user.py index e478554..bc88715 100644 --- a/models/model_view_user.py +++ b/models/model_view_user.py @@ -11,6 +11,7 @@ Data model for user view """ # internal +from business_objects.dog.user import User from datastores.datastore_user import DataStore_User from models.model_view_base import Model_View_Base # from routes import bp_home @@ -20,8 +21,8 @@ from typing import ClassVar class Model_View_User(Model_View_Base): FLAG_ERROR_OAUTH: ClassVar[str] = 'error' FLAG_ERROR_DESCRIPTION_OAUTH: ClassVar[str] = 'error_description' - FLAG_FIRSTNAME: ClassVar[str] = 'firstname' - FLAG_SURNAME: ClassVar[str] = 'surname' + FLAG_FIRSTNAME: ClassVar[str] = User.FLAG_FIRSTNAME + FLAG_SURNAME: ClassVar[str] = User.FLAG_SURNAME FLAG_STATE_OAUTH: ClassVar[str] = 'state' currencies: list = None regions: list = None @@ -30,7 +31,4 @@ class Model_View_User(Model_View_Base): def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_USER_ACCOUNT): super().__init__(hash_page_current=hash_page_current, form_filters_old = None) self._title = 'User' - datastore_user = DataStore_User() - self.currencies = datastore_user.get_many_currency() - self.regions = datastore_user.get_many_region() \ No newline at end of file diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index ecdd3ea..501695a 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,26 +1,46 @@ USE demo; -DROP PROCEDURE IF EXISTS demo.p_ph_save_apply_founding_partner_form; +-- Clear previous proc +DROP PROCEDURE IF EXISTS p_dog_get_many_user; + DELIMITER // -CREATE PROCEDURE demo.p_ph_save_apply_founding_partner_form ( - IN a_comment VARCHAR(500), - IN a_guid BINARY(36), - IN a_id_user INT, - IN a_debug BIT +CREATE PROCEDURE demo.p_dog_get_many_user ( + IN a_id_user INT + , IN a_auth0_id_user VARCHAR(200) + , IN a_get_all_user BIT + , IN a_get_inactive_user BIT + , IN a_ids_user TEXT + , IN a_auth0_ids_user TEXT + , IN a_names_user TEXT + , IN a_emails_user TEXT + , IN a_get_all_company BIT + , IN a_get_inactive_company BIT + , IN a_ids_company TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_debug BIT ) BEGIN - DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_code_type_error_bad_data VARCHAR(50); + DECLARE v_guid BINARY(36); + DECLARE v_has_filter_user_auth0_id BIT; + DECLARE v_has_filter_user_id BIT; + DECLARE v_has_filter_user_name BIT; + DECLARE v_id_access_level_admin INT; DECLARE v_id_access_level_view INT; - DECLARE v_id_access_level_edit INT; - DECLARE v_id_change_set INT; - DECLARE v_id_permission_apply_founding_partner_form_admin INT; - DECLARE v_id_permission_apply_founding_partner_form_new INT; + DECLARE v_id_permission_dog_admin INT; + DECLARE v_id_permission_user INT; + DECLARE v_id_permission_user_admin INT; DECLARE v_id_type_error_bad_data INT; + DECLARE v_ids_user TEXT; + DECLARE v_is_new BIT; + DECLARE v_is_super_user BIT; + DECLARE v_rank_max INT; DECLARE v_time_start TIMESTAMP(6); - DECLARE v_can_admin BIT; - DECLARE v_can_create BIT; DECLARE exit handler for SQLEXCEPTION BEGIN @@ -33,10 +53,10 @@ BEGIN ROLLBACK; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT - , code VARCHAR(50) NOT NULL - , msg VARCHAR(4000) NOT NULL + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL ); INSERT INTO tmp_Msg_Error ( @@ -52,678 +72,513 @@ BEGIN WHERE MET.code = 'MYSQL_ERROR' ; - SELECT * - FROM tmp_Msg_Error; - DROP TABLE IF EXISTS tmp_Msg_Error + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; + + DROP TABLE IF EXISTS tmp_Msg_Error; END; SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_guid := UUID(); + SET v_id_access_level_admin := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1); + SET v_id_access_level_view := (SELECT id_access_level FROM demo.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1); + SET v_id_permission_dog_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'DOG_ADMIN' LIMIT 1); + SET v_id_permission_user := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_VIEW' LIMIT 1); + SET v_id_permission_user_admin := (SELECT id_permission FROM demo.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1); SET v_code_type_error_bad_data := 'BAD_DATA'; SET v_id_type_error_bad_data := (SELECT id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); - SET v_id_permission_apply_founding_partner_form_admin := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1); - SET v_id_permission_apply_founding_partner_form_new := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1); + SET v_is_new := FALSE; - CALL demo.p_core_validate_guid ( a_guid ); + SET a_get_all_user := IFNULL(a_get_all_user, 1); + SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0); + SET a_ids_user := TRIM(IFNULL(a_ids_user, '')); + SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, '')); + SET a_names_user := TRIM(IFNULL(a_names_user, '')); + SET a_emails_user := TRIM(IFNULL(a_emails_user, '')); + SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1); + SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1); + SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); + 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); - DROP TABLE IF EXISTS tmp_Apply_Founding_Partner_Form; + IF a_debug = 1 THEN + SELECT + a_id_user + , a_auth0_id_user + , a_get_all_user + , a_get_inactive_user + , a_ids_user + , a_auth0_ids_user + , a_names_user + , a_emails_user + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_debug + ; + END IF; - CREATE TEMPORARY TABLE tmp_Apply_Founding_Partner_Form ( - id_apply_founding_partner_form INT NOT NULL - , name_contact VARCHAR(255) - , email VARCHAR(255) - , phone_number VARCHAR(255) - , name_company VARCHAR(255) - , website VARCHAR(1000) - , dog_count INT - , id_years_of_experience INT - , ids_speciality VARCHAR(255) - , ids_existing_system VARCHAR(255) - , existing_challenges TEXT - , id_existing_time_sink_weekly INT - , id_commitment_frequency INT - -- , most_valuable_features TEXT - , notes TEXT + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; + DROP TEMPORARY TABLE IF EXISTS tmp_User; + DROP TEMPORARY TABLE IF EXISTS tmp_Company; + + CREATE TEMPORARY TABLE tmp_Company ( + id_company INT NOT NULL + , name VARCHAR(250) NOT NULL + , website VARCHAR(1000) , active BIT NOT NULL - , name_error VARCHAR(255) - , is_new BIT NOT NULL + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL ); - - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT - , code VARCHAR(50) NOT NULL - , msg VARCHAR(4000) NOT NULL - ); - - - -- Get data from Temp table - INSERT INTO tmp_Apply_Founding_Partner_Form ( - id_apply_founding_partner_form - , name_contact - , email - , phone_number - , name_company - , website - , dog_count - , id_years_of_experience - , ids_speciality - , ids_existing_system - , existing_challenges - , id_existing_time_sink_weekly - , id_commitment_frequency - -- , most_valuable_features - , notes - , active - , is_new - ) - SELECT - AFPF_T.id_apply_founding_partner_form AS id_apply_founding_partner_form - , IFNULL(AFPF_T.name_contact, AFPF.name_contact) AS name_contact - , IFNULL(AFPF_T.email, AFPF.email) AS email - , IFNULL(AFPF_T.phone_number, AFPF.phone_number) AS phone_number - , IFNULL(AFPF_T.name_company, AFPF.name_company) AS name_company - , IFNULL(AFPF_T.website, AFPF.website) AS website - , IFNULL(AFPF_T.dog_count, AFPF.dog_count) AS dog_count - , IFNULL(AFPF_T.id_years_of_experience, AFPF.id_years_of_experience) AS id_years_of_experience - , IFNULL(AFPF_T.ids_speciality, AFPF.ids_speciality) AS ids_speciality - , IFNULL(AFPF_T.ids_existing_system, AFPF.ids_existing_system) AS ids_existing_system - , IFNULL(AFPF_T.existing_challenges, AFPF.existing_challenges) AS existing_challenges - , IFNULL(AFPF_T.id_existing_time_sink_weekly, AFPF.id_existing_time_sink_weekly) AS id_existing_time_sink_weekly - , IFNULL(AFPF_T.id_commitment_frequency, AFPF.id_commitment_frequency) AS id_commitment_frequency - -- , IFNULL(AFPF_T.most_valuable_features, AFPF.most_valuable_features) AS most_valuable_features - , IFNULL(AFPF_T.notes, AFPF.notes) AS notes - , COALESCE(AFPF_T.active, AFPF.active, 1) AS active - , CASE WHEN IFNULL(AFPF_T.id_apply_founding_partner_form, 0) < 1 THEN 1 ELSE 0 END AS is_new - FROM demo.PH_Apply_Founding_Partner_Form_Temp AFPF_T - LEFT JOIN demo.PH_Apply_Founding_Partner_Form AFPF ON AFPF_T.id_apply_founding_partner_form = AFPF.id_apply_founding_partner_form - WHERE AFPF_T.guid = a_guid - ; - UPDATE tmp_Apply_Founding_Partner_Form t_AFPF - SET name_error = COALESCE(t_AFPF.email, t_AFPF.name_company, t_AFPF.name_contact, t_AFPF.message, '(No Apply Founding Partner Form)') - ; + CREATE TEMPORARY TABLE tmp_User ( + id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL + , id_user INT + , id_company INT + , id_permission_required INT NOT NULL + , priority_access_level_required INT NOT NULL + , is_super_user BIT + , priority_access_level_user INT + , has_access BIT + , can_view BIT + , can_edit BIT + , can_admin BIT + , can_admin_dog BIT + , can_admin_user BIT + ); - -- Validation - -- Missing mandatory fields - -- name_contact - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.name_contact) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Contact Name: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.name_contact) - ; - END IF; - -- email - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.email) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have an Email: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.email) - ; - END IF; - /* - -- phone_number - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.phone_number) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Phone_number: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.phone_number) - ; - END IF; - */ - -- name_company - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.name_company) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Company Name: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.name) - ; - END IF; - /* - -- website - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.website) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Website: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.website) - ; - END IF; - */ - -- dog_count - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.dog_count) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Dog_count: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.dog_count) - ; - END IF; - -- id_years_of_experience - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.id_years_of_experience) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Id_years_of_experience: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.id_years_of_experience) - ; - END IF; - -- ids_speciality - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.ids_speciality) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Ids_speciality: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.ids_speciality) - ; - END IF; - -- ids_existing_system - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.ids_existing_system) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Ids_existing_system: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.ids_existing_system) - ; - END IF; - -- existing_challenges - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.existing_challenges) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a existing_challenges: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.existing_challenges) - ; - END IF; - -- id_existing_time_sink_weekly - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.id_existing_time_sink_weekly) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Id_existing_time_sink_weekly: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.id_existing_time_sink_weekly) - ; - END IF; - -- id_commitment_frequency - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.id_commitment_frequency) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Id_commitment_frequency: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.id_commitment_frequency) - ; - END IF; - /* - -- most_valuable_features - IF EXISTS (SELECT * FROM tmp_Apply_Founding_Partner_Form t_AFPF WHERE ISNULL(t_AFPF.most_valuable_features) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Apply Founding Partner Form(s) do not have a Most_valuable_features: ', GROUP_CONCAT(t_AFPF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE ISNULL(t_AFPF.most_valuable_features) - ; - END IF; - */ + CREATE TEMPORARY TABLE tmp_User_Access ( + id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL + , id_user INT + , id_permission_required INT NOT NULL + , priority_access_level_required INT NOT NULL + , is_super_user BIT + , priority_access_level_user INT + , has_access BIT + , can_view BIT + , can_edit BIT + , can_admin BIT + ); + CREATE TEMPORARY TABLE tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT NOT NULL + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + -- Permissions - IF a_debug = 1 THEN - SELECT - a_guid + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , a_auth0_id_user -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_user -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + SELECT * FROM demo.DOG_Calc_User_Access_Temp; + END IF; + + CALL demo.p_dog_calc_user_access( + v_guid -- guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user - , '' -- a_auth0_ids_user + , a_auth0_id_user -- a_auth0_ids_user , '' -- a_names_user , '' -- a_emails_user , 1 -- a_require_all_id_search_filters_met , 1 -- a_require_any_id_search_filters_met , 0 -- a_require_all_non_id_search_filters_met , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_apply_founding_partner_form_admin -- ids_permission + , v_id_permission_user -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors - , 0 -- a_debug + , 0 -- a_debug + ); + + INSERT INTO tmp_User_Access ( + id_user + , id_permission_required + , priority_access_level_required + , is_super_user + , priority_access_level_user + , has_access + , can_view + , can_edit + , can_admin + ) + SELECT + CALC_USER_T.id_user + , CALC_USER_T.id_permission_required + , CALC_USER_T.priority_access_level_required + , CALC_USER_T.is_super_user + , CALC_USER_T.priority_access_level_user + , CALC_USER_T.has_access + , CALC_USER_T.can_view + , CALC_USER_T.can_edit + , CALC_USER_T.can_admin + FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE CALC_USER_T.guid = v_guid ; - END IF; - - CALL demo.p_dog_calc_user( - 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_apply_founding_partner_form_admin -- 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_admin - FROM demo.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid - LIMIT 1 - ; - - IF a_debug = 1 THEN - SELECT v_can_admin; - SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; - SELECT * FROM tmp_Msg_Error t_ERROR; - END IF; - - CALL demo.p_dog_clear_calc_user( - a_guid - , 0 -- a_debug - ); - - IF a_debug = 1 THEN - SELECT - 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_apply_founding_partner_form_new -- 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( - 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_apply_founding_partner_form_new -- 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_create - FROM demo.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid - LIMIT 1 - ; - - IF a_debug = 1 THEN - SELECT v_can_create; - SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; - SELECT * FROM tmp_Msg_Error t_ERROR; - END IF; - - CALL demo.p_dog_clear_calc_user( - a_guid - , 0 -- a_debug - ); - - IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Apply_Founding_Partner_Form WHERE is_new = 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 admin Apply Founding Partner Forms.' - ) - ; - END IF; - - IF EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT * from tmp_Apply_Founding_Partner_Form; - END IF; - - DELETE FROM tmp_Apply_Founding_Partner_Form; - END IF; - - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN - START TRANSACTION; - - INSERT INTO demo.PH_Contact_Form_Change_Set ( - comment - , id_user_updated_last_by - , updated_last_on - ) - VALUES ( - a_comment - , a_id_user - , v_time_start - ) - ; - - SET v_id_change_set := LAST_INSERT_ID(); - - UPDATE demo.PH_Apply_Founding_Partner_Form AFPF - INNER JOIN tmp_Apply_Founding_Partner_Form t_AFPF - ON AFPF.id_apply_founding_partner_form = t_AFPF.id_apply_founding_partner_form - AND t_AFPF.is_new = 0 - SET - AFPF.name_contact = t_AFPF.name_contact - , AFPF.email = t_AFPF.email - , AFPF.phone_number = t_AFPF.phone_number - , AFPF.name_company = t_AFPF.name_company - , AFPF.website = t_AFPF.website - , AFPF.dog_count = t_AFPF.dog_count - , AFPF.id_years_of_experience = t_AFPF.id_years_of_experience - , AFPF.ids_speciality = t_AFPF.ids_speciality - , AFPF.ids_existing_system = t_AFPF.ids_existing_system - , AFPF.existing_challenges = t_AFPF.existing_challenges - , AFPF.id_existing_time_sink_weekly = t_AFPF.id_existing_time_sink_weekly - , AFPF.id_commitment_frequency = t_AFPF.id_commitment_frequency - -- , AFPF.most_valuable_features = t_AFPF.most_valuable_features - , AFPF.notes = t_AFPF.notes - , AFPF.active = t_AFPF.active - , AFPF.id_change_set = v_id_change_set - ; - - INSERT INTO demo.PH_Apply_Founding_Partner_Form ( - name_contact - , email - , phone_number - , name_company - , website - , dog_count - , id_years_of_experience - , ids_speciality - , ids_existing_system - , existing_challenges - , id_existing_time_sink_weekly - , id_commitment_frequency - -- , most_valuable_features - , notes - , active - , id_user_created_by - , created_on + IF a_debug = 1 THEN + SELECT * FROM tmp_User_Access; + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_User_Access t_USER_ACCESS WHERE t_USER_ACCESS.has_access = 1) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT( + 'You do not have view permissions for ' + , (SELECT PERMISSION.name FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.id_permission = v_id_permission_user LIMIT 1) + ) ) - SELECT - t_AFPF.name_contact - , t_AFPF.email - , t_AFPF.phone_number - , t_AFPF.name_company - , t_AFPF.website - , t_AFPF.dog_count - , t_AFPF.id_years_of_experience - , t_AFPF.ids_speciality - , t_AFPF.ids_existing_system - , t_AFPF.existing_challenges - , t_AFPF.id_existing_time_sink_weekly - , t_AFPF.id_commitment_frequency - -- , t_AFPF.most_valuable_features - , t_AFPF.notes - , t_AFPF.active - , a_id_user - , v_time_start - FROM tmp_Apply_Founding_Partner_Form t_AFPF - WHERE - t_AFPF.is_new = 1 - AND t_AFPF.active = 1 ; - - COMMIT; - END IF; - - START TRANSACTION; + END IF; + + CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); + END IF; - DELETE FROM demo.PH_Apply_Founding_Partner_Form_Temp - WHERE GUID = a_guid + SET v_is_super_user := (SELECT IFNULL(t_USER_ACCESS.is_super_user, 0) FROM tmp_User_Access t_USER_ACCESS LIMIT 1); + + -- Companies + IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- v_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , a_names_company -- a_names_company + , a_websites_company -- a_websites_company + , 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 + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL demo.p_dog_calc_company ( + v_guid -- v_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , NULL -- a_names_company + , NULL -- a_websites_company + , 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_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ); + + INSERT INTO tmp_Company ( + id_company + , name + , website + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + COMPANY_T.id_company + , COMPANY_T.name + , COMPANY_T.website + , COMPANY_T.active + + , COMPANY_T.does_meet_id_filters + , COMPANY_T.does_meet_non_id_filters + FROM demo.DOG_Company_Temp COMPANY_T + WHERE COMPANY_T.GUID = v_guid ; - - COMMIT; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Company; + END IF; + END IF; + + -- Calculated fields + -- Can admin dog + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + SELECT * FROM demo.DOG_Calc_User_Access_Temp; + END IF; + + CALL demo.p_dog_calc_user_access( + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + INSERT INTO tmp_User ( + id_user + , id_company + , id_permission_required + , priority_access_level_required + , is_super_user + , priority_access_level_user + , has_access + , can_view + , can_edit + , can_admin + , can_admin_dog + ) + WITH Can_Access_User AS ( + SELECT + USER.id_user + , t_COMPANY.id_company + , ROW_NUMBER() OVER (PARTITION BY USER.id_user ORDER BY CASE WHEN t_COMPANY.id_company IS NOT NULL THEN 1 ELSE 0 END DESC) AS index_user_company_link_in_user + FROM demo.DOG_User USER + LEFT JOIN demo.DOG_User_Company_Link USER_COMPANY_LINK ON USER.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company + ) + SELECT + CALC_USER_T.id_user + , CAN_ACCESS_USER.id_company + , CALC_USER_T.id_permission_required + , CALC_USER_T.priority_access_level_required + , CALC_USER_T.is_super_user + , CALC_USER_T.priority_access_level_user + , CALC_USER_T.has_access + , CALC_USER_T.can_view + , CALC_USER_T.can_edit + , CALC_USER_T.can_admin + , CALC_USER_T.can_admin AS can_admin_dog + FROM demo.DOG_Calc_User_Access_Temp CALC_USER_T + /* + LEFT JOIN demo.DOG_User_Company_Link USER_COMPANY_LINK ON CALC_USER_T.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company + */ + INNER JOIN Can_Access_User CAN_ACCESS_USER ON CALC_USER_T.id_user = CAN_ACCESS_USER.id_user + WHERE + CALC_USER_T.guid = v_guid + AND ( + v_is_super_user = 1 + OR CAN_ACCESS_USER.id_company IS NOT NULL + ) + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_User; + END IF; + + CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); + END IF; - -- Errors - SELECT * - FROM tmp_Msg_Error t_ME - INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + -- Can admin user + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_user_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + SELECT * FROM demo.DOG_Calc_User_Access_Temp; + END IF; + + CALL demo.p_dog_calc_user_access( + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_user_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + UPDATE tmp_User t_USER + INNER JOIN demo.DOG_Calc_User_Access_Temp CALC_USER_T + ON CALC_USER_T.id_user = t_USER.id_user + AND CALC_USER_T.guid = v_guid + LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company + SET t_USER.can_admin_user = CALC_USER_T.can_admin + WHERE + v_is_super_user = 1 + OR t_COMPANY.id_company IS NOT NULL + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_User; + END IF; + + CALL demo.p_dog_clear_calc_user_access( v_guid, FALSE ); + END IF; + + + IF EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT * FROM tmp_User; + END IF; + + DELETE FROM tmp_User; + END IF; + + -- Returns + SELECT + USER.id_user + , USER.id_user_auth0 + , USER.firstname + , USER.surname + , USER.email + , USER.is_email_verified + , t_USER.id_company + , t_COMPANY.name AS name_company + , t_COMPANY.website AS website_company + , t_USER.is_super_user + , t_USER.priority_access_level_user AS priority_access_level + , t_USER.can_admin_dog + , t_USER.can_admin_user + FROM tmp_User t_USER + -- INNER JOIN tmp_User_Access t_USER_ACCESS + INNER JOIN demo.DOG_User USER ON t_USER.id_user = USER.id_user + LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company ; - IF a_debug = 1 THEN - SELECT * from tmp_Apply_Founding_Partner_Form; - END IF; - - DROP TEMPORARY TABLE tmp_Apply_Founding_Partner_Form; - DROP TEMPORARY TABLE tmp_Msg_Error; + # 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 + ; - IF a_debug = 1 THEN - CALL demo.p_core_debug_timing_reporting ( v_time_start ); - END IF; + IF a_debug = 1 THEN + SELECT 'End'; + SELECT * FROM tmp_User; + SELECT * FROM tmp_User_Access; + END IF; + + -- Clean up + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; + DROP TEMPORARY TABLE IF EXISTS tmp_User; + DROP TEMPORARY TABLE IF EXISTS tmp_Company; + + IF a_debug = 1 THEN + CALL demo.p_debug_timing_reporting ( v_time_start ); + END IF; END // DELIMITER ; + /* +select * FROM demo.DOG_Calc_User_Access_Temp; +delete FROM demo.DOG_Calc_User_Access_Temp; -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; +SELECT * +FROM demo.DOG_USER; - - -INSERT INTO demo.PH_Apply_Founding_Partner_Form_Temp ( - id_apply_founding_partner_form - ,name_contact - , email, - phone_number - ,name_company - ,website - ,dog_count - ,id_years_of_experience - ,ids_speciality - ,ids_existing_system - ,existing_challenges - ,id_existing_time_sink_weekly - ,id_commitment_frequency - ,notes - ,active - ,guid -) -SELECT - id_apply_founding_partner_form - ,name_contact - , email, - phone_number - ,name_company - ,website - ,dog_count - ,id_years_of_experience - ,ids_speciality - ,ids_existing_system - ,existing_challenges - ,id_existing_time_sink_weekly - ,id_commitment_frequency - ,notes - ,active - , '782c29e0-72e6-41e2-b543-4b0454041a57' - FROM demo.PH_Apply_Founding_Partner_Form_Temp - WHERE guid = '782c29e0-72e6-41e2-b543-4b0454041a56'; - - -CALL demo.p_ph_save_apply_founding_partner_form ( - 'nipples' - , (SELECT GUID FROM demo.PH_Apply_Founding_Partner_Form_Temp ORDER BY id_temp DESC LIMIT 1) - , 1 - , 1 +CALL demo.p_dog_get_many_user( + NULL -- :a_id_user, + , 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_id_user, + , 1 -- :a_get_all_user, + , 0 -- :a_get_inactive_user, + -- , 0 -- :a_get_first_user_only, + , NULL -- :a_ids_user, + , 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , '' -- a_ids_company + , 0 -- a_get_all_company + , 0 -- a_get_inactive_company + , 1 -- :a_require_all_id_search_filters_met, + , 1 -- :a_require_any_id_search_filters_met, + , 0 -- :a_require_all_non_id_search_filters_met, + , 1 -- :a_require_any_non_id_search_filters_met, + , 0 -- a_debug ); - -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; - - - */ - -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; - - - -INSERT INTO demo.PH_Apply_Founding_Partner_Form_Temp ( - id_apply_founding_partner_form - ,name_contact - , email, - phone_number - ,name_company - ,website - ,dog_count - ,id_years_of_experience - ,ids_speciality - ,ids_existing_system - ,existing_challenges - ,id_existing_time_sink_weekly - ,id_commitment_frequency - ,notes - ,active - ,guid -) -SELECT - id_apply_founding_partner_form - ,name_contact - , email, - phone_number - ,name_company - ,website - ,dog_count - ,id_years_of_experience - ,ids_speciality - ,ids_existing_system - ,existing_challenges - ,id_existing_time_sink_weekly - ,id_commitment_frequency - ,notes - ,active - , '782c29e0-72e6-41e2-b543-4b0454041a57' - FROM demo.PH_Apply_Founding_Partner_Form_Temp - WHERE guid = '782c29e0-72e6-41e2-b543-4b0454041a56'; - - -CALL demo.p_ph_save_apply_founding_partner_form ( - 'nipples' - , (SELECT GUID FROM demo.PH_Apply_Founding_Partner_Form_Temp ORDER BY id_temp DESC LIMIT 1) - , 1 - , 1 -); - -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form; -SELECT * -FROM demo.PH_Apply_Founding_Partner_Form_Temp; - diff --git a/static/MySQL/00001_destroy.sql b/static/MySQL/00001_destroy.sql index bce5416..f55611f 100644 --- a/static/MySQL/00001_destroy.sql +++ b/static/MySQL/00001_destroy.sql @@ -7,7 +7,7 @@ FLUSH PRIVILEGES; USE fetchmetrics; -- Permanent Temp Tables -DROP TABLE IF EXISTS fetchmetrics.tmp_dog_Calc_User; +DROP TABLE IF EXISTS fetchmetrics.tmp_dog_calc_user_access; -- DROP TABLE IF EXISTS fetchmetrics.tmp_core_Msg_Error; DROP TABLE IF EXISTS fetchmetrics.tmp_dog_User; DROP TABLE IF EXISTS fetchmetrics.tmp_dog_User_Role_Link; @@ -197,7 +197,7 @@ DROP TABLE IF EXISTS fetchmetrics.DOG_Unit_Measurement_Conversion; DROP TABLE IF EXISTS fetchmetrics.DOG_Unit_Measurement_Audit; DROP TABLE IF EXISTS fetchmetrics.DOG_Unit_Measurement; -DROP TABLE IF EXISTS fetchmetrics.DOG_Calc_User_Temp; +DROP TABLE IF EXISTS fetchmetrics.DOG_Calc_User_Access_Temp; DROP TABLE IF EXISTS fetchmetrics.DOG_User_Role_Link_Audit; DROP TABLE IF EXISTS fetchmetrics.DOG_User_Role_Link; @@ -245,8 +245,8 @@ DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_test_save_command; DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_save_command; DROP PROCEDURE IF EXISTS fetchmetrics.p_command_clear_calc_command; -DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_user; -DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_user; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_user_access; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_user_access; DROP PROCEDURE IF EXISTS fetchmetrics.p_core_clear_split; /* diff --git a/static/MySQL/10505a_tbl_DOG_Company.sql b/static/MySQL/10505a_tbl_DOG_Company.sql index f98a877..ed6df93 100644 --- a/static/MySQL/10505a_tbl_DOG_Company.sql +++ b/static/MySQL/10505a_tbl_DOG_Company.sql @@ -10,8 +10,8 @@ WHERE CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Company ( id_company INT NOT NULL AUTO_INCREMENT PRIMARY KEY - , code VARCHAR(250) NOT NULL , name VARCHAR(250) NOT NULL + , website VARCHAR(1000) , active BIT NOT NULL DEFAULT 1 , created_on DATETIME , id_user_created_by INT diff --git a/static/MySQL/10505c_tbl_DOG_Company_Temp.sql b/static/MySQL/10505c_tbl_DOG_Company_Temp.sql index 50b678d..05e12d0 100644 --- a/static/MySQL/10505c_tbl_DOG_Company_Temp.sql +++ b/static/MySQL/10505c_tbl_DOG_Company_Temp.sql @@ -1,6 +1,8 @@ USE fetchmetrics; +DROP TABLE IF EXISTS fetchmetrics.DOG_Company_Temp; + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE @@ -15,4 +17,7 @@ CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Company_Temp ( , website VARCHAR(1000) , active BIT , guid BINARY(36) + + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL ); diff --git a/static/MySQL/10530_tbl_DOG_Calc_User_Temp.sql b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql similarity index 69% rename from static/MySQL/10530_tbl_DOG_Calc_User_Temp.sql rename to static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql index f5c7d07..c5b45a3 100644 --- a/static/MySQL/10530_tbl_DOG_Calc_User_Temp.sql +++ b/static/MySQL/10530_tbl_DOG_Calc_User_Access_Temp.sql @@ -1,16 +1,17 @@ USE fetchmetrics; --- DROP TABLE IF EXISTS demo.DOG_Calc_User_Temp; +DROP TABLE IF EXISTS demo.DOG_Calc_User_Access_Temp; +-- DROP TABLE IF EXISTS demo.DOG_Calc_User_Access_Temp; SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'fetchmetrics' - AND TABLE_NAME = 'DOG_Calc_User_Temp' + AND TABLE_NAME = 'DOG_Calc_User_Access_Temp' ; -CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Calc_User_Temp ( +CREATE TABLE IF NOT EXISTS fetchmetrics.DOG_Calc_User_Access_Temp ( id_user INT , id_permission_required INT , priority_access_level_required INT diff --git a/static/MySQL/30516_tri_DOG_User.sql b/static/MySQL/30504_tri_DOG_User.sql similarity index 99% rename from static/MySQL/30516_tri_DOG_User.sql rename to static/MySQL/30504_tri_DOG_User.sql index 94fb4cc..b606302 100644 --- a/static/MySQL/30516_tri_DOG_User.sql +++ b/static/MySQL/30504_tri_DOG_User.sql @@ -61,4 +61,4 @@ BEGIN WHERE NOT (OLD.active <=> NEW.active) ; END // -DELIMITER ; \ No newline at end of file +DELIMITER ; diff --git a/static/MySQL/30505_tri_DOG_Company.sql b/static/MySQL/30505_tri_DOG_Company.sql new file mode 100644 index 0000000..5b189c5 --- /dev/null +++ b/static/MySQL/30505_tri_DOG_Company.sql @@ -0,0 +1,48 @@ + +USE fetchmetrics; + +DROP TRIGGER IF EXISTS fetchmetrics.before_insert_DOG_Company; +DROP TRIGGER IF EXISTS fetchmetrics.before_update_DOG_Company; + + +DELIMITER // +CREATE TRIGGER fetchmetrics.before_insert_DOG_Company +BEFORE INSERT ON fetchmetrics.DOG_Company +FOR EACH ROW +BEGIN + SET NEW.created_on := IFNULL(NEW.created_on, NOW()); +END // +DELIMITER ; + + +DELIMITER // +CREATE TRIGGER fetchmetrics.before_update_DOG_Company +BEFORE UPDATE ON fetchmetrics.DOG_Company +FOR EACH ROW +BEGIN + IF OLD.id_change_set <=> NEW.id_change_set THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'New change Set ID must be provided.'; + END IF; + + INSERT INTO fetchmetrics.DOG_Company_Audit ( + id_company, + name_field, + value_prev, + value_new, + id_change_set + ) + -- Changed name + SELECT NEW.id_company, 'name', OLD.name, NEW.name, NEW.id_change_set + WHERE NOT OLD.name <=> NEW.name + UNION + -- Changed website + SELECT NEW.id_company, 'website', OLD.website, NEW.website, NEW.id_change_set + WHERE NOT OLD.website <=> NEW.website + UNION + -- Changed active + SELECT NEW.id_company, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set + WHERE NOT (OLD.active <=> NEW.active) + ; +END // +DELIMITER ; diff --git a/static/MySQL/30506_tri_DOG_User_Company_Link.sql b/static/MySQL/30506_tri_DOG_User_Company_Link.sql new file mode 100644 index 0000000..1e0abf4 --- /dev/null +++ b/static/MySQL/30506_tri_DOG_User_Company_Link.sql @@ -0,0 +1,48 @@ + +USE fetchmetrics; + +DROP TRIGGER IF EXISTS fetchmetrics.before_insert_DOG_User_Company_Link; +DROP TRIGGER IF EXISTS fetchmetrics.before_update_DOG_User_Company_Link; + + +DELIMITER // +CREATE TRIGGER fetchmetrics.before_insert_DOG_User_Company_Link +BEFORE INSERT ON fetchmetrics.DOG_User_Company_Link +FOR EACH ROW +BEGIN + SET NEW.created_on := IFNULL(NEW.created_on, NOW()); +END // +DELIMITER ; + + +DELIMITER // +CREATE TRIGGER fetchmetrics.before_update_DOG_User_Company_Link +BEFORE UPDATE ON fetchmetrics.DOG_User_Company_Link +FOR EACH ROW +BEGIN + IF OLD.id_change_set <=> NEW.id_change_set THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'New change Set ID must be provided.'; + END IF; + + INSERT INTO fetchmetrics.DOG_User_Company_Link_Audit ( + id_link, + name_field, + value_prev, + value_new, + id_change_set + ) + -- Changed id_user + SELECT NEW.id_link, 'id_user', CONVERT(OLD.id_user, CHAR), CONVERT(NEW.id_user, CHAR), NEW.id_change_set + WHERE NOT OLD.id_user <=> NEW.id_user + UNION + -- Changed id_company + SELECT NEW.id_link, 'id_company', CONVERT(OLD.id_company, CHAR), CONVERT(NEW.id_company, CHAR), NEW.id_change_set + WHERE NOT OLD.id_company <=> NEW.id_company + UNION + -- Changed active + SELECT NEW.id_link, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set + WHERE NOT (OLD.active <=> NEW.active) + ; +END // +DELIMITER ; diff --git a/static/MySQL/30520_tri_DOG_Role copy 2.sql b/static/MySQL/30520_tri_DOG_Role copy 2.sql deleted file mode 100644 index e8b734c..0000000 --- a/static/MySQL/30520_tri_DOG_Role copy 2.sql +++ /dev/null @@ -1,52 +0,0 @@ - -USE fetchmetrics; - -DROP TRIGGER IF EXISTS fetchmetrics.before_insert_DOG_Role; -DROP TRIGGER IF EXISTS fetchmetrics.before_update_DOG_Role; - - -DELIMITER // -CREATE TRIGGER fetchmetrics.before_insert_DOG_Role -BEFORE INSERT ON fetchmetrics.DOG_Role -FOR EACH ROW -BEGIN - SET NEW.created_on := IFNULL(NEW.created_on, NOW()); -END // -DELIMITER ; - - -DELIMITER // -CREATE TRIGGER fetchmetrics.before_update_DOG_Role -BEFORE UPDATE ON fetchmetrics.DOG_Role -FOR EACH ROW -BEGIN - IF OLD.id_change_set <=> NEW.id_change_set THEN - SIGNAL SQLSTATE '45000' - SET MESSAGE_TEXT = 'New change Set ID must be provided.'; - END IF; - - INSERT INTO fetchmetrics.DOG_Role_Audit ( - id_role, - name_field, - value_prev, - value_new, - id_change_set - ) - -- Changed code - SELECT NEW.id_role, 'code', OLD.code, NEW.code, NEW.id_change_set - WHERE NOT OLD.code <=> NEW.code - UNION - -- Changed name - SELECT NEW.id_role, 'name', OLD.name, NEW.name, NEW.id_change_set - WHERE NOT OLD.name <=> NEW.name - UNION - -- Changed active - SELECT NEW.id_role, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set - WHERE NOT (OLD.active <=> NEW.active) - UNION - -- Changed display_order - SELECT NEW.id_role, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set - WHERE NOT OLD.display_order <=> NEW.display_order - ; -END // -DELIMITER ; diff --git a/static/MySQL/30520_tri_DOG_Role copy.sql b/static/MySQL/30520_tri_DOG_Role copy.sql deleted file mode 100644 index e8b734c..0000000 --- a/static/MySQL/30520_tri_DOG_Role copy.sql +++ /dev/null @@ -1,52 +0,0 @@ - -USE fetchmetrics; - -DROP TRIGGER IF EXISTS fetchmetrics.before_insert_DOG_Role; -DROP TRIGGER IF EXISTS fetchmetrics.before_update_DOG_Role; - - -DELIMITER // -CREATE TRIGGER fetchmetrics.before_insert_DOG_Role -BEFORE INSERT ON fetchmetrics.DOG_Role -FOR EACH ROW -BEGIN - SET NEW.created_on := IFNULL(NEW.created_on, NOW()); -END // -DELIMITER ; - - -DELIMITER // -CREATE TRIGGER fetchmetrics.before_update_DOG_Role -BEFORE UPDATE ON fetchmetrics.DOG_Role -FOR EACH ROW -BEGIN - IF OLD.id_change_set <=> NEW.id_change_set THEN - SIGNAL SQLSTATE '45000' - SET MESSAGE_TEXT = 'New change Set ID must be provided.'; - END IF; - - INSERT INTO fetchmetrics.DOG_Role_Audit ( - id_role, - name_field, - value_prev, - value_new, - id_change_set - ) - -- Changed code - SELECT NEW.id_role, 'code', OLD.code, NEW.code, NEW.id_change_set - WHERE NOT OLD.code <=> NEW.code - UNION - -- Changed name - SELECT NEW.id_role, 'name', OLD.name, NEW.name, NEW.id_change_set - WHERE NOT OLD.name <=> NEW.name - UNION - -- Changed active - SELECT NEW.id_role, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set - WHERE NOT (OLD.active <=> NEW.active) - UNION - -- Changed display_order - SELECT NEW.id_role, 'display_order', CONVERT(OLD.display_order, CHAR), CONVERT(NEW.display_order, CHAR), NEW.id_change_set - WHERE NOT OLD.display_order <=> NEW.display_order - ; -END // -DELIMITER ; diff --git a/static/MySQL/70505_p_dog_calc_company.sql b/static/MySQL/70505_p_dog_calc_company.sql new file mode 100644 index 0000000..aa2990c --- /dev/null +++ b/static/MySQL/70505_p_dog_calc_company.sql @@ -0,0 +1,602 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_calc_company; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_calc_company ( + IN a_guid BINARY(36) + , IN a_id_user INT + , IN a_get_all_company BIT + , IN a_get_inactive_company BIT + , IN a_ids_company TEXT + , IN a_names_company TEXT + , IN a_websites_company TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_show_errors BIT + , IN a_debug BIT +) +BEGIN + DECLARE v_can_view BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_code_type_error_no_permission VARCHAR(100); + DECLARE v_has_filter_company_id BIT; + DECLARE v_has_filter_company_name BIT; + DECLARE v_has_filter_company_website BIT; + DECLARE v_id_access_level_view INT; + DECLARE v_id_minimum INT; + DECLARE v_id_permission_dog_view INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_id_type_error_no_permission INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Company ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error_Calc_Company ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_Company t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_Company; + END; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_code_type_error_no_permission := 'NO_PERMISSION'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1); + SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'COMPANY_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); + + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + SET a_id_user := IFNULL(a_id_user, 0); + SET a_get_all_company := IFNULL(a_get_all_company, 0); + SET a_get_inactive_company := IFNULL(a_get_inactive_company, 0); + SET a_ids_company := TRIM(IFNULL(a_ids_company, '')); + SET a_names_company := TRIM(IFNULL(a_names_company, '')); + SET a_websites_company := TRIM(IFNULL(a_websites_company, '')); + SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1); + SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1); + SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); + SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1); + SET a_show_errors := IFNULL(a_show_errors, 0); + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_guid + , a_id_user + , a_get_all_company + , a_get_inactive_company + , a_ids_company + , a_names_company + , a_websites_company + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_show_errors + , a_debug + ; + + SELECT + v_id_type_error_bad_data + , v_id_type_error_no_permission + , v_id_permission_dog_view + , v_time_start + ; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Website_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Company_Calc_Company; + + CREATE TEMPORARY TABLE tmp_Company_Calc_Company ( + id_company INT NOT NULL + , 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_Company ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Company ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Id_Calc_Company; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Company ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Name_Calc_Company; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Website_Calc_Company ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Website_Calc_Company; + + SET v_has_filter_company_id = CASE WHEN a_ids_company <> '' THEN 1 ELSE 0 END; + SET v_has_filter_company_name = CASE WHEN a_names_company <> '' THEN 1 ELSE 0 END; + SET v_has_filter_company_website = CASE WHEN a_websites_company <> '' THEN 1 ELSE 0 END; + + -- COMPANY + IF v_has_filter_company_id = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_ids_company, ',', a_debug); + + SET sql_mode = ''; + + INSERT INTO tmp_Split_Id_Calc_Company ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + IF v_has_filter_company_name = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_names_company, ',', a_debug); + + SET sql_mode = ''; + + INSERT INTO tmp_Split_Name_Calc_Company ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + IF v_has_filter_company_website = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_websites_company, ',', a_debug); + + SET sql_mode = ''; + + INSERT INTO tmp_Split_Website_Calc_Company ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CAST(SPLIT_T.substring AS DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') <> '' + ; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Company 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 EXISTS ( + SELECT * + FROM tmp_Split_Id_Calc_Company t_SPLIT_ID + LEFT JOIN fetchmetrics.DOG_Company COMPANY ON t_SPLIT_ID.as_int = COMPANY.id_company + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(COMPANY.id_company) + OR ( + COMPANY.active = 0 + AND a_get_inactive_company = 0 + ) + ) THEN + INSERT INTO tmp_Msg_Error_Calc_Company ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive Company IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT_ID.substring SEPARATOR ', '), 'NULL')) + FROM tmp_Split_Id_Calc_Company t_SPLIT_ID + LEFT JOIN fetchmetrics.DOG_Company COMPANY ON t_SPLIT_ID.as_int = COMPANY.id_company + WHERE + ISNULL(t_SPLIT_ID.as_int) + OR ISNULL(COMPANY.id_company) + OR ( + COMPANY.active = 0 + AND a_get_inactive_company = 0 + ) + ; + /* Don't error on names, hand signals, or notes not found + ELSEIF EXISTS () + */ + ELSE + INSERT INTO tmp_Company_Calc_Company ( + id_company + , does_meet_id_filters + , does_meet_non_id_filters + ) + WITH + Company_Id_Filter AS ( + SELECT COMPANY.id_company + FROM tmp_Split_Id_Calc_Company t_SPLIT_ID + INNER JOIN fetchmetrics.DOG_Company COMPANY ON t_SPLIT_ID.as_int = COMPANY.id_company + ) + , Company_Name_Filter AS ( + SELECT COMPANY.id_company + FROM tmp_Split_Name_Calc_Company t_SPLIT_NAME + INNER JOIN fetchmetrics.DOG_Company COMPANY ON COMPANY.name LIKE CONCAT('%', t_SPLIT_NAME.substring, '%') + WHERE NULLIF(t_SPLIT_NAME.substring, '') IS NOT NULL + ) + , Company_Website_Filter AS ( + SELECT COMPANY.id_company + FROM tmp_Split_Website_Calc_Company t_SPLIT_WEBSITE + INNER JOIN fetchmetrics.DOG_Company COMPANY ON COMPANY.website LIKE CONCAT('%', t_SPLIT_WEBSITE.substring, '%') + WHERE NULLIF(t_SPLIT_WEBSITE.substring, '') IS NOT NULL + ) + , Company_Filters AS ( + SELECT + COMPANY_COMBINED.id_company + , MAX(COMPANY_COMBINED.does_meet_id_filter) AS does_meet_id_filter + , MAX(COMPANY_COMBINED.does_meet_name_filter) AS does_meet_name_filter + , MAX(COMPANY_COMBINED.does_meet_website_filter) AS does_meet_website_filter + FROM ( + SELECT + COMPANY_ID_FILTER.id_company + , 1 AS does_meet_id_filter + , 0 AS does_meet_name_filter + , 0 AS does_meet_website_filter + FROM Company_Id_Filter COMPANY_ID_FILTER + UNION + SELECT + COMPANY_NAME_FILTER.id_company + , 0 AS does_meet_id_filter + , 1 AS does_meet_name_filter + , 0 AS does_meet_website_filter + FROM Company_Name_Filter COMPANY_NAME_FILTER + UNION + SELECT + COMPANY_WEBSITE_FILTER.id_company + , 0 AS does_meet_id_filter + , 0 AS does_meet_name_filter + , 1 AS does_meet_website_filter + FROM Company_Website_Filter COMPANY_WEBSITE_FILTER + ) COMPANY_COMBINED + GROUP BY COMPANY_COMBINED.id_company + ) + SELECT + COMPANY.id_company + , CASE WHEN + v_has_filter_company_id = 0 + OR IFNULL(COMPANY_FILTERS.does_meet_id_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_id_filters + , CASE WHEN + ( + v_has_filter_company_name = 0 + AND v_has_filter_company_website = 0 + ) + OR IFNULL(COMPANY_FILTERS.does_meet_name_filter, 0) = 1 + OR IFNULL(COMPANY_FILTERS.does_meet_website_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_non_id_filters + FROM fetchmetrics.DOG_Company COMPANY + LEFT JOIN Company_Filters COMPANY_FILTERS ON COMPANY.id_company = COMPANY_FILTERS.id_company + WHERE + ( + a_get_all_company = 1 + OR ( + v_has_filter_company_id = 1 + AND COMPANY_FILTERS.does_meet_id_filter = 1 + ) + OR ( + v_has_filter_company_name = 1 + AND COMPANY_FILTERS.does_meet_name_filter = 1 + ) + ) + AND ( + a_get_inactive_company = 1 + OR COMPANY.active = 1 + ) + ; + END IF; + END IF; + + DELETE FROM tmp_Split_Id_Calc_Company; + DELETE FROM tmp_Split_Name_Calc_Company; + + IF a_debug = 1 THEN + SELECT 'After get COMPANY'; + SELECT * FROM tmp_Company_Calc_Company; + END IF; + + -- Filter records + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_Company 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_COMPANY + FROM tmp_Company_Calc_Company t_COMPANY + WHERE + ( + a_require_all_id_search_filters_met = 1 + AND ( + t_COMPANY.does_meet_id_filters = 0 + ) + ) + OR ( + a_require_all_non_id_search_filters_met = 1 + AND ( + t_COMPANY.does_meet_non_id_filters = 0 + ) + ) + OR ( + a_require_any_id_search_filters_met = 1 + AND t_COMPANY.does_meet_id_filters = 0 + ) + OR ( + a_require_any_non_id_search_filters_met = 1 + AND t_COMPANY.does_meet_non_id_filters = 0 + ) + ; + END IF; + + IF a_debug = 1 THEN + SELECT 'After filter COMPANY'; + SELECT * FROM tmp_Company_Calc_Company; + END IF; + + -- Calculated fields + + -- Permissions + IF a_debug = 1 THEN + SELECT + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + a_guid -- a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_view -- ids_permission + , v_id_access_level_view -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CALC_USER_T.has_access, 0) + INTO + v_can_view + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + WHERE CALC_USER_T.GUID = a_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT v_can_view; + END IF; + + IF (v_can_view = 0) THEN + DELETE t_ME + FROM tmp_Msg_Error_Calc_Company t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Calc_Company ( + 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 COMPANY.' + ) + ; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + a_guid + , 0 -- a_debug + ); + + IF a_debug = 1 THEN + SELECT 'Before non-permitted data deletion'; + SELECT * FROM tmp_Company_Calc_Company; + SELECT * FROM tmp_Msg_Error_Calc_Company; + END IF; + + IF EXISTS(SELECT * FROM tmp_Msg_Error_Calc_Company 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_Company_Calc_Company; + END IF; + + DELETE FROM tmp_Company_Calc_Company; + END IF; + + IF a_debug = 1 THEN + SELECT 'After non-permitted data deletion'; + END IF; + + -- Outputs + START TRANSACTION; + -- COMPANY + INSERT INTO fetchmetrics.DOG_Company_Temp ( + guid + , id_company + , name + , website + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + a_guid + , t_COMPANY.id_company + , COMPANY.name + , COMPANY.website + , COMPANY.active + + , t_COMPANY.does_meet_id_filters + , t_COMPANY.does_meet_non_id_filters + FROM fetchmetrics.DOG_Company COMPANY + INNER JOIN tmp_Company_Calc_Company t_COMPANY ON COMPANY.id_company = t_COMPANY.id_company + ORDER BY COMPANY.name + ; + COMMIT; + + -- 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_Company t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + END IF; + + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Company_Calc_Company; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_dog ( a_guid, 0 ); + + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Website_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Name_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Split_Id_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error_Calc_Company; + DROP TEMPORARY TABLE IF EXISTS tmp_Company_Calc_Company; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + + +CALL fetchmetrics.p_dog_calc_company ( + 'gripe ' -- a_guid + , 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_company + , 0 -- a_get_inactive_company + , '' -- a_ids_company + , '' -- a_names_company + , '' -- a_websites_company + , 0 -- a_require_all_id_search_filters_met + , 0 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug +); + +SELECT * +FROM fetchmetrics.DOG_Company_Temp +; +/* +SELECT * +FROM fetchmetrics.DOG_Company_Temp C +WHERE + C.does_meet_id_filters + AND C.does_meet_non_id_filters +; +*/ +CALL fetchmetrics.p_dog_clear_calc_company ( + 'gripe ' -- a_guid + , 1 -- debug +); + + +DELETE +FROM fetchmetrics.DOG_Company_Temp +; + +*/ diff --git a/static/MySQL/70505_p_dog_clear_calc_company.sql b/static/MySQL/70505_p_dog_clear_calc_company.sql new file mode 100644 index 0000000..28349f5 --- /dev/null +++ b/static/MySQL/70505_p_dog_clear_calc_company.sql @@ -0,0 +1,45 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_company; +DROP PROCEDURE IF EXISTS fetchmetrics.p_company_clear_calc_company; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_clear_calc_company ( + IN a_guid BINARY(36) + , IN a_debug BIT +) +BEGIN + DECLARE v_time_start TIMESTAMP(6); + SET v_time_start := CURRENT_TIMESTAMP(6); + + CALL fetchmetrics.p_core_validate_guid ( a_guid ); + + START TRANSACTION; + + DELETE COMPANY_T + FROM fetchmetrics.DOG_Company_Temp COMPANY_T + WHERE COMPANY_T.GUID = a_guid + ; + + COMMIT; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_debug_timing_reporting( v_time_start ); + END IF; +END // +DELIMITER ; + +/* + +CALL fetchmetrics.p_dog_clear_calc_company ( + 'crips ' -- a_guid + , 1 -- debug +); + +SELECT * +FROM fetchmetrics.DOG_Calc_User_Access_Temp +WHERE GUID = 'chips ' +; + +*/ diff --git a/static/MySQL/70505_p_dog_get_many_company.sql b/static/MySQL/70505_p_dog_get_many_company.sql new file mode 100644 index 0000000..2133358 --- /dev/null +++ b/static/MySQL/70505_p_dog_get_many_company.sql @@ -0,0 +1,373 @@ + +USE fetchmetrics; + +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_get_many_company; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_get_many_company ( + IN a_id_user INT + , IN a_get_all_company BIT + , IN a_get_inactive_company BIT + , IN a_ids_company TEXT + , IN a_names_company TEXT + , IN a_websites_company TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_debug BIT +) +BEGIN + DECLARE v_can_view BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_code_type_error_no_permission VARCHAR(100); + DECLARE v_guid BINARY(36); + DECLARE v_id_access_level_view INT; + DECLARE v_id_minimum INT; + DECLARE v_id_permission_dog_view INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_id_type_error_no_permission INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error; + END; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_guid := UUID(); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_code_type_error_no_permission := 'NO_PERMISSION'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1); + SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1); + SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + + SET a_id_user := IFNULL(a_id_user, 0); + /* + */ + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_id_user + , a_get_all_company + , a_get_inactive_company + , a_ids_company + , a_names_company + , a_websites_company + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_debug + ; + + SELECT + v_id_type_error_bad_data + , v_id_type_error_no_permission + , v_guid + , v_id_permission_dog_view + , v_time_start + ; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_Company; + + CREATE TEMPORARY TABLE tmp_Company ( + id_company INT NOT NULL + , name VARCHAR(250) + , website VARCHAR(1000) + , active BIT + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + -- 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 COMPANY.' + ) + ; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( + v_guid + , 0 -- a_debug + ); + + + -- Call Company 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 a_debug = 1 THEN + SELECT + v_guid -- a_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , a_names_company -- a_names_company + , a_websites_company -- a_websites_company + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_company ( + v_guid -- a_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , a_names_company -- a_names_company + , a_websites_company -- a_websites_company + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ); + + IF a_debug = 1 THEN + SELECT COUNT(*) FROM fetchmetrics.DOG_Company_Temp; + SELECT * FROM fetchmetrics.DOG_Company_Temp; + END IF; + + INSERT INTO tmp_Company ( + id_company + , name + , website + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + COMPANY_T.id_company + , COMPANY_T.name + , COMPANY_T.website + , COMPANY_T.active + + , COMPANY_T.does_meet_id_filters + , COMPANY_T.does_meet_non_id_filters + FROM fetchmetrics.DOG_Company_Temp COMPANY_T + WHERE COMPANY_T.GUID = v_guid + ; + + IF a_debug = 1 THEN + SELECT COUNT(*) FROM tmp_Company; + SELECT * FROM tmp_Company; + 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_Company; + END IF; + + DELETE FROM tmp_Company; + END IF; + + + -- Outputs + -- COMPANY + SELECT + t_COMPANY.id_company + , t_COMPANY.name + , t_COMPANY.website + , t_COMPANY.active + + , t_COMPANY.does_meet_id_filters + , t_COMPANY.does_meet_non_id_filters + FROM tmp_Company t_COMPANY + LEFT JOIN fetchmetrics.DOG_Company COMPANY ON t_COMPANY.id_company = COMPANY.id_company + ORDER BY t_COMPANY.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 fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Company; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_company( + v_guid -- a_guid + , 0 -- a_debug + ); + + DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; + DROP TEMPORARY TABLE IF EXISTS tmp_Company; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + +CALL fetchmetrics.p_dog_get_many_company ( + 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_company + , 0 -- a_get_inactive_company + , '' -- a_ids_company + , '' -- a_names_company + , '' -- a_websites_company + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 1 -- a_require_any_non_id_search_filters_met + , 1 -- a_debug +); + + +CALL demo.p_dog_get_many_company ( + 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_company + , 0 -- a_get_inactive_company + , '' -- a_ids_company + , 'pat,point' -- a_names_company + , 'pat,point' -- a_websites_company + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 1 -- a_require_any_non_id_search_filters_met + , 1 -- a_debug +); + +*/ \ No newline at end of file diff --git a/static/MySQL/70516_p_dog_get_many_user.sql b/static/MySQL/70516_p_dog_get_many_user.sql index 8295d7f..75c7416 100644 --- a/static/MySQL/70516_p_dog_get_many_user.sql +++ b/static/MySQL/70516_p_dog_get_many_user.sql @@ -6,7 +6,7 @@ DROP PROCEDURE IF EXISTS p_dog_get_many_user; DELIMITER // -CREATE PROCEDURE p_dog_get_many_user ( +CREATE PROCEDURE fetchmetrics.p_dog_get_many_user ( IN a_id_user INT , IN a_auth0_id_user VARCHAR(200) , IN a_get_all_user BIT @@ -15,6 +15,9 @@ CREATE PROCEDURE p_dog_get_many_user ( , IN a_auth0_ids_user TEXT , IN a_names_user TEXT , IN a_emails_user TEXT + , IN a_get_all_company BIT + , IN a_get_inactive_company BIT + , IN a_ids_company TEXT , IN a_require_all_id_search_filters_met BIT , IN a_require_any_id_search_filters_met BIT , IN a_require_all_non_id_search_filters_met BIT @@ -29,14 +32,13 @@ BEGIN DECLARE v_has_filter_user_name BIT; DECLARE v_id_access_level_admin INT; DECLARE v_id_access_level_view INT; - DECLARE v_id_minimum INT; DECLARE v_id_permission_dog_admin INT; DECLARE v_id_permission_user INT; DECLARE v_id_permission_user_admin INT; DECLARE v_id_type_error_bad_data INT; - DECLARE v_ids_permission_required VARCHAR(4000); DECLARE v_ids_user TEXT; DECLARE v_is_new BIT; + DECLARE v_is_super_user BIT; DECLARE v_rank_max INT; DECLARE v_time_start TIMESTAMP(6); @@ -96,7 +98,6 @@ BEGIN SET v_id_permission_user_admin := (SELECT id_permission FROM fetchmetrics.DOG_Permission WHERE code = 'USER_ADMIN' LIMIT 1); SET v_code_type_error_bad_data := 'BAD_DATA'; SET v_id_type_error_bad_data := (SELECT id_type FROM fetchmetrics.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); - SET v_ids_permission_required := CONCAT(v_id_permission_user, ',', v_id_permission_user_admin, ',', v_id_permission_dog_admin); SET v_is_new := FALSE; SET a_get_all_user := IFNULL(a_get_all_user, 1); @@ -132,10 +133,21 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; DROP TEMPORARY TABLE IF EXISTS tmp_User; - + DROP TEMPORARY TABLE IF EXISTS tmp_Company; + + CREATE TEMPORARY TABLE tmp_Company ( + id_company INT NOT NULL + , name VARCHAR(250) NOT NULL + , website VARCHAR(1000) + , active BIT NOT NULL + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL + ); + CREATE TEMPORARY TABLE tmp_User ( - id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL + id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL , id_user INT + , id_company INT , id_permission_required INT NOT NULL , priority_access_level_required INT NOT NULL , is_super_user BIT @@ -149,7 +161,7 @@ BEGIN ); CREATE TEMPORARY TABLE tmp_User_Access ( - id_row INT PRIMARY KEY AUTO_INCREMENT NOT NULL + id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL , id_user INT , id_permission_required INT NOT NULL , priority_access_level_required INT NOT NULL @@ -168,136 +180,6 @@ BEGIN , msg TEXT NOT NULL ); - -- Calculated fields - -- Can admin dog - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; - END IF; - - CALL fetchmetrics.p_dog_calc_user( - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_dog_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - INSERT INTO tmp_User ( - id_user - , id_permission_required - , priority_access_level_required - , is_super_user - , priority_access_level_user - , has_access - , can_view - , can_edit - , can_admin - , can_admin_dog - ) - SELECT - CALC_USER_T.id_user - , CALC_USER_T.id_permission_required - , CALC_USER_T.priority_access_level_required - , CALC_USER_T.is_super_user - , CALC_USER_T.priority_access_level_user - , CALC_USER_T.has_access - , CALC_USER_T.can_view - , CALC_USER_T.can_edit - , CALC_USER_T.can_admin - , CALC_USER_T.can_admin AS can_admin_dog - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.guid = v_guid - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_User; - END IF; - - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); - END IF; - - -- Can admin user - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_user_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; - END IF; - - CALL fetchmetrics.p_dog_calc_user( - v_guid -- guid - , a_get_all_user -- get_all_user - , a_get_inactive_user -- get_inactive_user - , a_ids_user -- ids_user - , a_auth0_ids_user -- a_auth0_ids_user - , a_names_user -- a_names_user - , a_emails_user -- a_emails_user - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , v_id_permission_user_admin -- ids_permission - , v_id_access_level_admin -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - UPDATE tmp_User t_USER - INNER JOIN fetchmetrics.DOG_Calc_User_Temp CALC_USER_T - ON CALC_USER_T.id_user = t_USER.id_user - AND CALC_USER_T.guid = v_guid - SET t_USER.can_admin_user = CALC_USER_T.can_admin - ; - - IF a_debug = 1 THEN - SELECT * FROM tmp_User; - END IF; - - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); - END IF; -- Permissions 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 @@ -319,10 +201,10 @@ BEGIN , 0 -- a_show_errors , 0 -- a_debug ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -361,7 +243,7 @@ BEGIN , CALC_USER_T.can_view , CALC_USER_T.can_edit , CALC_USER_T.can_admin - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.guid = v_guid ; @@ -386,7 +268,230 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); + END IF; + + SET v_is_super_user := (SELECT IFNULL(t_USER_ACCESS.is_super_user, 0) FROM tmp_User_Access t_USER_ACCESS LIMIT 1); + + -- Companies + IF NOT EXISTS(SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- v_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , a_names_company -- a_names_company + , a_websites_company -- a_websites_company + , 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 + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL fetchmetrics.p_dog_calc_company ( + v_guid -- v_guid + , a_id_user -- a_id_user + , a_get_all_company -- a_get_all_company + , a_get_inactive_company -- a_get_inactive_company + , a_ids_company -- a_ids_company + , NULL -- a_names_company + , NULL -- a_websites_company + , 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_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , 0 -- a_show_errors + , 0 -- a_debug + ); + + INSERT INTO tmp_Company ( + id_company + , name + , website + , active + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + COMPANY_T.id_company + , COMPANY_T.name + , COMPANY_T.website + , COMPANY_T.active + + , COMPANY_T.does_meet_id_filters + , COMPANY_T.does_meet_non_id_filters + FROM fetchmetrics.DOG_Company_Temp COMPANY_T + WHERE COMPANY_T.GUID = v_guid + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Company; + END IF; + END IF; + + -- Calculated fields + -- Can admin dog + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + INSERT INTO tmp_User ( + id_user + , id_company + , id_permission_required + , priority_access_level_required + , is_super_user + , priority_access_level_user + , has_access + , can_view + , can_edit + , can_admin + , can_admin_dog + ) + WITH Can_Access_User AS ( + SELECT + USER.id_user + , t_COMPANY.id_company + , ROW_NUMBER() OVER (PARTITION BY USER.id_user ORDER BY CASE WHEN t_COMPANY.id_company IS NOT NULL THEN 1 ELSE 0 END DESC) AS index_user_company_link_in_user + FROM fetchmetrics.DOG_User USER + LEFT JOIN fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK ON USER.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company + ) + SELECT + CALC_USER_T.id_user + , CAN_ACCESS_USER.id_company + , CALC_USER_T.id_permission_required + , CALC_USER_T.priority_access_level_required + , CALC_USER_T.is_super_user + , CALC_USER_T.priority_access_level_user + , CALC_USER_T.has_access + , CALC_USER_T.can_view + , CALC_USER_T.can_edit + , CALC_USER_T.can_admin + , CALC_USER_T.can_admin AS can_admin_dog + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + /* + LEFT JOIN fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK ON CALC_USER_T.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN tmp_Company t_COMPANY ON USER_COMPANY_LINK.id_company = t_COMPANY.id_company + */ + INNER JOIN Can_Access_User CAN_ACCESS_USER ON CALC_USER_T.id_user = CAN_ACCESS_USER.id_user + WHERE + CALC_USER_T.guid = v_guid + AND ( + v_is_super_user = 1 + OR ( + CAN_ACCESS_USER.id_company IS NOT NULL + AND CAN_ACCESS_USER.index_user_company_link_in_user = 1 + ) + ) + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_User; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); + END IF; + + -- Can admin user + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_user_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; + END IF; + + CALL fetchmetrics.p_dog_calc_user_access( + v_guid -- guid + , a_get_all_user -- get_all_user + , a_get_inactive_user -- get_inactive_user + , a_ids_user -- ids_user + , a_auth0_ids_user -- a_auth0_ids_user + , a_names_user -- a_names_user + , a_emails_user -- a_emails_user + , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met + , v_id_permission_user_admin -- ids_permission + , v_id_access_level_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + UPDATE tmp_User t_USER + INNER JOIN fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T + ON CALC_USER_T.id_user = t_USER.id_user + AND CALC_USER_T.guid = v_guid + LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company + SET t_USER.can_admin_user = CALC_USER_T.can_admin + WHERE + v_is_super_user = 1 + OR t_COMPANY.id_company IS NOT NULL + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_User; + END IF; + + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); END IF; @@ -406,11 +511,17 @@ BEGIN , USER.surname , USER.email , USER.is_email_verified - , USER.is_super_user - , t_USER.can_admin_dog - , t_USER.can_admin_user + , t_USER.id_company + , t_COMPANY.name AS name_company + , t_COMPANY.website AS website_company + , t_USER.is_super_user + , t_USER.priority_access_level_user AS priority_access_level + , t_USER.can_admin_dog + , t_USER.can_admin_user FROM tmp_User t_USER + -- INNER JOIN tmp_User_Access t_USER_ACCESS INNER JOIN fetchmetrics.DOG_User USER ON t_USER.id_user = USER.id_user + LEFT JOIN tmp_Company t_COMPANY ON t_USER.id_company = t_COMPANY.id_company ; # Errors @@ -438,6 +549,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; DROP TEMPORARY TABLE IF EXISTS tmp_User_Access; DROP TEMPORARY TABLE IF EXISTS tmp_User; + DROP TEMPORARY TABLE IF EXISTS tmp_Company; IF a_debug = 1 THEN CALL fetchmetrics.p_debug_timing_reporting ( v_time_start ); @@ -447,8 +559,8 @@ DELIMITER ; /* -select * FROM fetchmetrics.DOG_Calc_User_Temp; -delete FROM fetchmetrics.DOG_Calc_User_Temp; +select * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +delete FROM fetchmetrics.DOG_Calc_User_Access_Temp; SELECT * FROM fetchmetrics.DOG_USER; @@ -463,6 +575,9 @@ CALL fetchmetrics.p_dog_get_many_user( , 'auth0|6582b95c895d09a70ba10fef' -- :a_auth0_ids_user , '' -- a_names_user , '' -- a_emails_user + , '' -- a_ids_company + , 0 -- a_get_all_company + , 0 -- a_get_inactive_company , 1 -- :a_require_all_id_search_filters_met, , 1 -- :a_require_any_id_search_filters_met, , 0 -- :a_require_all_non_id_search_filters_met, diff --git a/static/MySQL/70518_p_dog_save_user.sql b/static/MySQL/70518_p_dog_save_user.sql index 7bcdc7c..e7fd29d 100644 --- a/static/MySQL/70518_p_dog_save_user.sql +++ b/static/MySQL/70518_p_dog_save_user.sql @@ -183,7 +183,7 @@ BEGIN ; END IF; - CALL p_dog_calc_user( + CALL p_dog_calc_user_access( a_guid -- GUID , a_id_user -- ID User , FALSE -- get inactive Users @@ -202,10 +202,10 @@ BEGIN , 0 -- a_show_errors , 0 -- a_debug ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- guid , a_id_user -- ids_user , FALSE -- get_inactive_user @@ -244,7 +244,7 @@ BEGIN ; END IF; - CALL p_dog_clear_calc_user(a_guid); + CALL p_dog_clear_calc_user_access(a_guid); IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN START TRANSACTION; diff --git a/static/MySQL/70530_p_dog_calc_user_access.sql b/static/MySQL/70530_p_dog_calc_user_access.sql new file mode 100644 index 0000000..ab35e98 --- /dev/null +++ b/static/MySQL/70530_p_dog_calc_user_access.sql @@ -0,0 +1,913 @@ + +-- Clear previous proc +DROP PROCEDURE IF EXISTS p_dog_user_eval; +DROP PROCEDURE IF EXISTS p_dog_calc_user_access; +DROP PROCEDURE IF EXISTS p_dog_user_calc; +DROP PROCEDURE IF EXISTS p_dog_calc_user_access; + +DELIMITER // +CREATE PROCEDURE fetchmetrics.p_dog_calc_user_access ( + IN a_guid BINARY(36) + , IN a_get_all_user BIT + , IN a_get_inactive_user BIT + , IN a_ids_user TEXT + , IN a_auth0_ids_user TEXT + , IN a_names_user TEXT + , IN a_emails_user TEXT + /* + , IN a_get_all_company BIT + , IN a_get_inactive_company BIT + , IN a_ids_company TEXT + , IN a_names_company TEXT + , IN a_websites_company TEXT + */ + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_ids_permission_required TEXT + , IN a_ids_access_level_required TEXT + , IN a_show_errors BIT + , IN a_debug BIT +) +BEGIN + DECLARE v_code_type_error_bad_data VARCHAR(200); + DECLARE v_has_filter_access_level BIT; + DECLARE v_has_filter_permission BIT; + DECLARE v_has_filter_user_auth0_id BIT; + DECLARE v_has_filter_user_id BIT; + DECLARE v_has_filter_user_email BIT; + DECLARE v_has_filter_user_name BIT; + DECLARE v_id_access_level_required INT; + DECLARE v_id_access_level_view INT; + DECLARE v_id_permission_required INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_ids_row_delete VARCHAR(500); + DECLARE v_priority_access_level_admin INT; + DECLARE v_priority_access_level_edit INT; + DECLARE v_priority_access_level_none INT; + DECLARE v_priority_access_level_required INT; + DECLARE v_priority_access_level_view INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User_Access ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error_Calc_User_Access ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM fetchmetrics.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Calc_User_Access t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User_Access; + END; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_id_type_error_bad_data := (SELECT id_type FROM fetchmetrics.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); + SET v_id_access_level_view = (SELECT id_access_level FROM fetchmetrics.DOG_Access_Level WHERE code = 'VIEW' LIMIT 1); + SET v_priority_access_level_view = (SELECT priority FROM fetchmetrics.DOG_Access_Level WHERE id_access_level = v_id_access_level_view); + SET v_priority_access_level_edit = (SELECT priority FROM fetchmetrics.DOG_Access_Level WHERE code = 'EDIT' LIMIT 1); + SET v_priority_access_level_admin = (SELECT priority FROM fetchmetrics.DOG_Access_Level WHERE code = 'ADMIN' LIMIT 1); + SET v_priority_access_level_none = (SELECT priority FROM fetchmetrics.DOG_Access_Level WHERE code = 'NONE' LIMIT 1); + + CALL fetchmetrics.p_validate_guid ( a_guid ); + SET a_get_all_user := IFNULL(a_get_all_user, 0); + SET a_get_inactive_user := IFNULL(a_get_inactive_user, 0); + SET a_ids_user := TRIM(IFNULL(a_ids_user, '')); + SET a_auth0_ids_user := TRIM(IFNULL(a_auth0_ids_user, '')); + SET a_names_user := TRIM(IFNULL(a_names_user, '')); + SET a_emails_user := TRIM(IFNULL(a_emails_user, '')); + /* + SET a_get_all_company := IFNULL(a_get_all_company, 0); + SET a_get_inactive_company := IFNULL(a_get_inactive_company, 0); + SET a_ids_company := TRIM(IFNULL(a_ids_company, '')); + SET a_names_company := TRIM(IFNULL(a_names_company, '')); + SET a_websites_company := TRIM(IFNULL(a_websites_company, '')); + */ + SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 0); + SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 0); + SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); + SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 0); + SET a_ids_permission_required := TRIM(IFNULL(a_ids_permission_required, '')); + SET a_ids_access_level_required := TRIM(IFNULL(a_ids_access_level_required, '')); + SET a_show_errors := IFNULL(a_show_errors, 0); + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_guid + , a_get_all_user + , a_get_inactive_user + , a_ids_user + , a_auth0_ids_user + , a_names_user + , a_emails_user + /* + , a_get_all_company + , a_get_inactive_company + , a_ids_company + , a_names_company + , a_websites_company + */ + , a_require_all_id_search_filters_met + , a_require_any_id_search_filters_met + , a_require_all_non_id_search_filters_met + , a_require_any_non_id_search_filters_met + , a_ids_permission_required + , a_ids_access_level_required + , a_show_errors + , a_debug + ; + + SELECT + v_priority_access_level_view + , v_priority_access_level_edit + , v_priority_access_level_admin + , v_id_access_level_view + , v_id_type_error_bad_data + , v_code_type_error_bad_data + ; + END IF; + + -- Clear previous proc results + DROP TABLE IF EXISTS tmp_Split_Email_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Name_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Auth0_Id_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Id_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Calc_User_Access_Calc_User_Access; + + -- Permanent Table + /* + CREATE TEMPORARY TABLE tmp_Company_Calc_User_Access ( + id_company INT NOT NULL + , name VARCHAR(250) NOT NULL + , websites VARCHAR(1000) + , active BIT NOT NULL + , does_meet_id_filters BIT NOT NULL + , does_meet_non_id_filters BIT NOT NULL + ); + */ + + CREATE TEMPORARY TABLE tmp_Calc_User_Access_Calc_User_Access ( + id_temp INT PRIMARY KEY AUTO_INCREMENT NOT NULL + , id_user INT + , id_permission_required INT NOT NULL + , priority_access_level_required INT NOT NULL + , is_super_user BIT + , priority_access_level_user INT + , has_access BIT + , can_view BIT + , can_edit BIT + , can_admin BIT + + , does_meet_id_filters BIT + , does_meet_non_id_filters BIT + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User_Access ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_User_Access ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Id_Calc_User_Access; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id_Calc_User_Access ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Auth0_Id_Calc_User_Access; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_User_Access ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Name_Calc_User_Access; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Email_Calc_User_Access ( + substring VARCHAR(4000) NOT NULL + , as_int INT + ); + DELETE FROM tmp_Split_Email_Calc_User_Access; + + SET v_has_filter_user_id = CASE WHEN a_ids_user <> '' THEN 1 ELSE 0 END; + SET v_has_filter_user_auth0_id = CASE WHEN a_auth0_ids_user <> '' THEN 1 ELSE 0 END; + SET v_has_filter_user_name = CASE WHEN a_names_user <> '' THEN 1 ELSE 0 END; + SET v_has_filter_user_email = CASE WHEN a_emails_user <> '' THEN 1 ELSE 0 END; + /* + */ + SET v_has_filter_permission = CASE WHEN a_ids_permission_required <> '' THEN 1 ELSE 0 END; + SET v_has_filter_access_level = CASE WHEN a_ids_access_level_required <> '' THEN 1 ELSE 0 END; + + IF a_debug = 1 THEN + SELECT + v_has_filter_user_id + , v_has_filter_user_auth0_id + , v_has_filter_user_name + , v_has_filter_user_email + , v_has_filter_permission + , v_has_filter_access_level + ; + END IF; + + # Access levels + IF v_has_filter_access_level = 1 THEN + IF a_debug = 1 THEN + SELECT + 'p_core_split' + , a_guid + , a_ids_access_level_required + , ',' + , a_debug + ; + END IF; + + CALL fetchmetrics.p_core_split(a_guid, a_ids_access_level_required, ',', a_debug); + + INSERT INTO tmp_Split_Id_Calc_User_Access ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CONVERT(SPLIT_T.substring, DECIMAL(10,0)) -- AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'Access Levels split', a_ids_access_level_required; + SELECT * + FROM tmp_Split_Id_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + + # Invalid IDs + IF EXISTS ( + SELECT t_SPLIT.substring + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level + WHERE + ISNULL(t_SPLIT.as_int) + OR ISNULL(ACCESS_LEVEL.id_access_level) + OR ACCESS_LEVEL.active = 0 + ) THEN + INSERT INTO tmp_Msg_Error_Calc_User_Access ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive access level IDs: ', GROUP_CONCAT(t_SPLIT.substring SEPARATOR ',')) + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level + WHERE + ISNULL(t_SPLIT.as_int) + OR ISNULL(ACCESS_LEVEL.id_access_level) + OR ACCESS_LEVEL.active = 0 + ; + + SET v_has_filter_access_level = 0; + ELSE + SET v_id_access_level_required := ( + SELECT ACCESS_LEVEL.id_access_level + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL + ON t_SPLIT.as_int = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + ORDER BY ACCESS_LEVEL.priority ASC + LIMIT 1 + ); + END IF; + END IF; + DELETE FROM tmp_Split_Id_Calc_User_Access; + + IF ISNULL(v_id_access_level_required) THEN + SET v_id_access_level_required = v_id_access_level_view; + END IF; + + -- Permission IDs + IF v_has_filter_permission = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_ids_permission_required, ',', a_debug); + + INSERT INTO tmp_Split_Id_Calc_User_Access ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'Permissions split', a_ids_permission_required; + SELECT * + FROM tmp_Split_Id_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + + # Invalid or inactive + IF EXISTS (SELECT PERMISSION.id_permission FROM tmp_Split_Id_Calc_User_Access t_SPLIT LEFT JOIN fetchmetrics.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission WHERE ISNULL(t_SPLIT.as_int) OR ISNULL(PERMISSION.id_permission) OR PERMISSION.active = 0) THEN + INSERT INTO tmp_Msg_Error_Calc_User_Access ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive permission IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL')) + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission + WHERE + ISNULL(t_SPLIT.as_int) + OR ISNULL(PERMISSION.id_permission) + OR PERMISSION.active = 0 + ; + ELSE + SET v_id_permission_required := ( + SELECT PERMISSION.id_permission + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + INNER JOIN fetchmetrics.DOG_Permission PERMISSION ON t_SPLIT.as_int = PERMISSION.id_permission + INNER JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL ON PERMISSION.id_access_level_required = ACCESS_LEVEL.id_access_level + ORDER BY ACCESS_LEVEL.priority ASC + LIMIT 1 + ); + END IF; + END IF; + DELETE FROM tmp_Split_Id_Calc_User_Access; + + SET v_priority_access_level_required := ( + SELECT ACCESS_LEVEL.priority + FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL + LEFT JOIN fetchmetrics.DOG_Permission PERMISSION ON ACCESS_LEVEL.id_access_level = PERMISSION.id_access_level_required + WHERE + ACCESS_LEVEL.id_access_level = v_id_access_level_required + OR PERMISSION.id_permission = v_id_permission_required + ORDER BY ACCESS_LEVEL.priority + LIMIT 1 + ); + + # Users + # Ids + IF v_has_filter_user_id = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_ids_user, ',', a_debug); + + INSERT INTO tmp_Split_Id_Calc_User_Access ( + substring + , as_int + ) + SELECT + SPLIT_T.substring + , CONVERT(SPLIT_T.substring, DECIMAL(10,0)) AS as_int + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'User Id split', a_ids_user; + SELECT * + FROM tmp_Split_Id_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + + # Invalid or inactive + IF EXISTS ( + SELECT USER.id_user + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_User USER ON t_SPLIT.as_int = USER.id_user + WHERE + ISNULL(t_SPLIT.as_int) + OR ISNULL(USER.id_user) + OR ( + a_get_inactive_user = 0 + AND USER.active = 0 + ) + ) + THEN + INSERT INTO tmp_Msg_Error_Calc_User_Access ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive user IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL')) + FROM tmp_Split_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_User USER ON t_SPLIT.as_int = USER.id_user + WHERE + ISNULL(t_SPLIT.as_int) + OR ISNULL(USER.id_user) + OR ( + a_get_inactive_user = 0 + AND USER.active = 0 + ) + ; + END IF; + END IF; + + # Auth0 Ids + IF v_has_filter_user_auth0_id = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_auth0_ids_user, ',', a_debug); + + INSERT INTO tmp_Split_Auth0_Id_Calc_User_Access ( substring ) + SELECT SPLIT_T.substring + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'User Auth0 Id split', a_auth0_ids_user; + SELECT * + FROM tmp_Split_Auth0_Id_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + + # Invalid or inactive + IF EXISTS ( + SELECT USER.id_user + FROM tmp_Split_Auth0_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_User USER ON t_SPLIT.substring = USER.id_user_auth0 + WHERE + ISNULL(USER.id_user) + OR ( + a_get_inactive_user = 0 + AND USER.active = 0 + ) + ) + THEN + INSERT INTO tmp_Msg_Error_Calc_User_Access ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('Invalid or inactive user Auth0 IDs: ', IFNULL(GROUP_CONCAT(t_SPLIT.substring SEPARATOR ','), 'NULL')) + FROM tmp_Split_Auth0_Id_Calc_User_Access t_SPLIT + LEFT JOIN fetchmetrics.DOG_User USER ON t_SPLIT.substring = USER.id_user_auth0 + WHERE + ISNULL(USER.id_user) + OR ( + a_get_inactive_user = 0 + AND USER.active = 0 + ) + ; + END IF; + END IF; + + # Names + IF v_has_filter_user_name = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_names_user, ',', a_debug); + + INSERT INTO tmp_Split_Name_Calc_User_Access ( substring ) + SELECT SPLIT_T.substring + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'User Name split', a_names_user; + SELECT * + FROM tmp_Split_Name_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + # Emails + IF v_has_filter_user_email = 1 THEN + CALL fetchmetrics.p_core_split(a_guid, a_emails_user, ',', a_debug); + + INSERT INTO tmp_Split_Email_Calc_User_Access ( substring ) + SELECT SPLIT_T.substring + FROM fetchmetrics.CORE_Split_Temp SPLIT_T + WHERE + SPLIT_T.GUID = a_guid + AND IFNULL(SPLIT_T.substring, '') != '' + ; + + IF a_debug = 1 THEN + SELECT 'User Email split', a_emails_user; + SELECT * + FROM tmp_Split_Email_Calc_User_Access; + END IF; + + CALL fetchmetrics.p_core_clear_split( a_guid ); + END IF; + + -- Get all users + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User_Access 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 + INSERT INTO tmp_Calc_User_Access_Calc_User_Access ( + id_user + , id_permission_required + , priority_access_level_required + , is_super_user + /* + , priority_access_level_user + , can_view + , can_edit + , can_admin + */ + , does_meet_id_filters + , does_meet_non_id_filters + ) + WITH + User_Id_Filter AS ( + SELECT USER.id_user + FROM tmp_Split_Id_Calc_User_Access t_SPLIT_ID + INNER JOIN fetchmetrics.DOG_User USER ON t_SPLIT_ID.as_int = USER.id_user + ) + , User_Auth0_Id_Filter AS ( + SELECT USER.id_user + FROM tmp_Split_Auth0_Id_Calc_User_Access t_SPLIT_AUTH0_ID + INNER JOIN fetchmetrics.DOG_User USER ON t_SPLIT_AUTH0_ID.substring = USER.id_user_auth0 + ) + , User_Name_Filter AS ( + SELECT USER.id_user + FROM tmp_Split_Name_Calc_User_Access t_SPLIT_NAME + INNER JOIN fetchmetrics.DOG_User USER ON CONCAT(USER.firstname, ' ', USER.surname) LIKE CONCAT('%', t_SPLIT_NAME.substring, '%') + WHERE IFNULL(t_SPLIT_NAME.substring, '') <> '' + ) + , User_Email_Filter AS ( + SELECT USER.id_user + FROM tmp_Split_Email_Calc_User_Access t_SPLIT_EMAIL + INNER JOIN demo.DOG_User USER ON USER.email LIKE CONCAT('%', t_SPLIT_EMAIL.substring, '%') + WHERE IFNULL(t_SPLIT_EMAIL.substring, '') <> '' + ) + , User_Filters AS ( + SELECT + USER_COMBINED.id_user + , MAX(USER_COMBINED.does_meet_id_filter) AS does_meet_id_filter + , MAX(USER_COMBINED.does_meet_auth0_id_filter) AS does_meet_auth0_id_filter + , MAX(USER_COMBINED.does_meet_name_filter) AS does_meet_name_filter + , MAX(USER_COMBINED.does_meet_email_filter) AS does_meet_email_filter + FROM ( + SELECT + USER_ID_FILTER.id_user + , 1 AS does_meet_id_filter + , 0 AS does_meet_auth0_id_filter + , 0 AS does_meet_name_filter + , 0 AS does_meet_email_filter + FROM User_Id_Filter USER_ID_FILTER + UNION + SELECT + USER_AUTH0_ID_FILTER.id_user + , 0 AS does_meet_id_filter + , 1 AS does_meet_auth0_id_filter + , 0 AS does_meet_name_filter + , 0 AS does_meet_email_filter + FROM User_Auth0_Id_Filter USER_AUTH0_ID_FILTER + UNION + SELECT + USER_NAME_FILTER.id_user + , 0 AS does_meet_id_filter + , 0 AS does_meet_auth0_id_filter + , 1 AS does_meet_name_filter + , 0 AS does_meet_email_filter + FROM User_Name_Filter USER_NAME_FILTER + UNION + SELECT + USER_EMAIL_FILTER.id_user + , 0 AS does_meet_id_filter + , 0 AS does_meet_auth0_id_filter + , 0 AS does_meet_name_filter + , 1 AS does_meet_email_filter + FROM User_Email_Filter USER_EMAIL_FILTER + ) USER_COMBINED + GROUP BY USER_COMBINED.id_user + ) + SELECT + USER.id_user -- id_user + + , v_id_permission_required -- id_permission_required + , v_priority_access_level_required -- priority_access_level_required + , IFNULL(USER.is_super_user, 0) AS is_super_user + + , CASE WHEN + ( + v_has_filter_user_id = 0 + AND v_has_filter_user_auth0_id = 0 + ) + OR IFNULL(USER_FILTERS.does_meet_id_filter, 0) = 1 + OR IFNULL(USER_FILTERS.does_meet_auth0_id_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_id_filters + , CASE WHEN + ( + v_has_filter_user_name = 0 + AND v_has_filter_user_email = 0 + ) + OR IFNULL(USER_FILTERS.does_meet_name_filter, 0) = 1 + OR IFNULL(USER_FILTERS.does_meet_email_filter, 0) = 1 + THEN 1 ELSE 0 END AS does_meet_non_id_filters + FROM fetchmetrics.DOG_User USER + LEFT JOIN User_Filters USER_FILTERS ON USER.id_user = USER_FILTERS.id_user + WHERE + ( + a_get_all_user = 1 + OR ( + v_has_filter_user_id = 1 + AND USER_FILTERS.does_meet_id_filter = 1 + ) + OR ( + v_has_filter_user_auth0_id = 1 + AND USER_FILTERS.does_meet_auth0_id_filter = 1 + ) + OR ( + v_has_filter_user_name = 1 + AND USER_FILTERS.does_meet_name_filter = 1 + ) + OR ( + v_has_filter_user_email = 1 + AND USER_FILTERS.does_meet_email_filter = 1 + ) + ) + AND ( + a_get_inactive_user = 1 + OR USER.active = 1 + ) + ; + END IF; + + DELETE FROM tmp_Split_Id_Calc_User_Access; + DELETE FROM tmp_Split_Auth0_Id_Calc_User_Access; + DELETE FROM tmp_Split_Name_Calc_User_Access; + DELETE FROM tmp_Split_Email_Calc_User_Access; + + IF a_debug = 1 THEN + SELECT 'After get Users'; + SELECT * FROM tmp_Calc_User_Access_Calc_User_Access; + END IF; + + -- Filter records + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User_Access 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_CALC_USER_ACCESS + FROM tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + /* + LEFT JOIN fetchmetrics.DOG_User_Company_Link USER_COMPANY_LINK ON t_CALC_USER_ACCESS.id_user = USER_COMPANY_LINK.id_user + LEFT JOIN tmp_Company_Calc_User_Access t_COMPANY ON t_COMPANY.id_company + */ + WHERE + ( + a_require_all_id_search_filters_met = 1 + AND t_CALC_USER_ACCESS.does_meet_id_filters = 0 + ) + OR ( + a_require_all_non_id_search_filters_met = 1 + AND t_CALC_USER_ACCESS.does_meet_non_id_filters = 0 + ) + OR ( + a_require_any_id_search_filters_met = 1 + AND t_CALC_USER_ACCESS.does_meet_id_filters = 0 + ) + OR ( + a_require_any_non_id_search_filters_met = 1 + AND t_CALC_USER_ACCESS.does_meet_non_id_filters = 0 + ) + ; + END IF; + + IF a_debug = 1 THEN + SELECT 'After filter Users'; + SELECT * FROM tmp_Calc_User_Access_Calc_User_Access; + END IF; + + -- Calculated fields + -- Priority Access Level User + WITH User_Access_Level AS ( + SELECT + USER.id_user + , MIN(IFNULL(ACCESS_LEVEL.priority, v_priority_access_level_none)) AS priority_access_level + FROM fetchmetrics.DOG_User USER -- tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + LEFT JOIN fetchmetrics.DOG_User_Role_Link USER_ROLE_LINK + ON USER.id_user = USER_ROLE_LINK.id_user + AND USER_ROLE_LINK.active = 1 + LEFT JOIN fetchmetrics.DOG_Role_Permission_Link ROLE_PERMISSION_LINK + ON USER_ROLE_LINK.id_role = ROLE_PERMISSION_LINK.id_role + AND ROLE_PERMISSION_LINK.active = 1 + LEFT JOIN fetchmetrics.DOG_Access_Level ACCESS_LEVEL + ON ROLE_PERMISSION_LINK.id_access_level = ACCESS_LEVEL.id_access_level + AND ACCESS_LEVEL.active = 1 + GROUP BY USER.id_user + ) + UPDATE tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + INNER JOIN User_Access_Level USER_ACCESS_LEVEL ON t_CALC_USER_ACCESS.id_user = USER_ACCESS_LEVEL.id_user + SET + t_CALC_USER_ACCESS.priority_access_level_user = USER_ACCESS_LEVEL.priority_access_level + , t_CALC_USER_ACCESS.has_access = CASE WHEN USER_ACCESS_LEVEL.priority_access_level <= v_priority_access_level_required THEN 1 ELSE 0 END + ; + + -- Has access + UPDATE tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + SET + t_CALC_USER_ACCESS.can_view = CASE WHEN + t_CALC_USER_ACCESS.is_super_user = 1 + OR ( + t_CALC_USER_ACCESS.priority_access_level_user <= v_priority_access_level_view + AND t_CALC_USER_ACCESS.has_access = 1 + ) + THEN 1 ELSE 0 END + , t_CALC_USER_ACCESS.can_edit = CASE WHEN + t_CALC_USER_ACCESS.is_super_user = 1 + OR ( + t_CALC_USER_ACCESS.priority_access_level_user <= v_priority_access_level_edit + AND t_CALC_USER_ACCESS.has_access = 1 + ) + THEN 1 ELSE 0 END + , t_CALC_USER_ACCESS.can_admin = CASE WHEN + t_CALC_USER_ACCESS.is_super_user = 1 + OR ( + t_CALC_USER_ACCESS.priority_access_level_user <= v_priority_access_level_admin + AND t_CALC_USER_ACCESS.has_access = 1 + ) + THEN 1 ELSE 0 END + ; + + -- Export data to staging table + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User_Access) THEN + START TRANSACTION; + INSERT INTO fetchmetrics.DOG_Calc_User_Access_Temp ( + guid + , id_user + , id_permission_required + , priority_access_level_required + , is_super_user + , priority_access_level_user + , has_access + , can_view + , can_edit + , can_admin + + , does_meet_id_filters + , does_meet_non_id_filters + ) + SELECT + a_guid + , t_CALC_USER_ACCESS.id_user + , t_CALC_USER_ACCESS.id_permission_required + , t_CALC_USER_ACCESS.priority_access_level_required + , t_CALC_USER_ACCESS.is_super_user + , t_CALC_USER_ACCESS.priority_access_level_user + , t_CALC_USER_ACCESS.has_access + , t_CALC_USER_ACCESS.can_view + , t_CALC_USER_ACCESS.can_edit + , t_CALC_USER_ACCESS.can_admin + + , t_CALC_USER_ACCESS.does_meet_id_filters + , t_CALC_USER_ACCESS.does_meet_non_id_filters + FROM tmp_Calc_User_Access_Calc_User_Access t_CALC_USER_ACCESS + ; + COMMIT; + END IF; + + -- 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_User_Access t_ERROR + INNER JOIN fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + END IF; + + IF a_debug = 1 THEN + SELECT 'End'; + SELECT * FROM tmp_Msg_Error_Calc_User_Access; + SELECT * FROM tmp_Calc_User_Access_Calc_User_Access; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = a_guid; + CALL fetchmetrics.p_dog_clear_calc_user_access ( a_guid, a_debug ); + END IF; + + -- Clean up + DROP TABLE IF EXISTS tmp_Split_Email_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Name_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Auth0_Id_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Split_Id_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User_Access; + DROP TABLE IF EXISTS tmp_Calc_User_Access_Calc_User_Access; + + IF a_debug = 1 THEN + CALL fetchmetrics.p_debug_timing_reporting( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + IN a_guid BINARY(36) + , IN a_get_all_user BIT + , IN a_get_inactive_user BIT + , IN a_ids_user TEXT + , IN a_auth0_ids_user TEXT + , IN a_names_user TEXT + , IN a_emails_user TEXT + , IN a_require_all_id_search_filters_met BIT + , IN a_require_any_id_search_filters_met BIT + , IN a_require_all_non_id_search_filters_met BIT + , IN a_require_any_non_id_search_filters_met BIT + , IN a_ids_permission_required TEXT + , IN a_ids_access_level_required TEXT + , IN a_show_errors BIT + , IN a_debug BIT + + +-- SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips '; +CALL fetchmetrics.p_dog_clear_calc_user_access ( 'chips ', 0 ); +-- SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User_Access; + +DELETE FROM fetchmetrics.DOG_Calc_User_Access_Temp; + +CALL fetchmetrics.p_dog_calc_user_access( + 'chips '-- a_guid + , 0 -- a_get_all_user + , 0 -- a_get_inactive_user + , '1' -- a_ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 1 -- a_require_any_non_id_search_filters_met + , '8' -- a_ids_permission_required + , '1' -- a_ids_access_level_required + , 1 -- a_show_errors + , 0 -- a_debug +); +SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips '; +CALL fetchmetrics.p_dog_clear_calc_user_access ( 'chips ', 0 ); +DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User_Access; + + +*/ diff --git a/static/MySQL/70531_p_dog_clear_calc_user.sql b/static/MySQL/70531_p_dog_clear_calc_user_access.sql similarity index 55% rename from static/MySQL/70531_p_dog_clear_calc_user.sql rename to static/MySQL/70531_p_dog_clear_calc_user_access.sql index d661fd7..aa8fb5c 100644 --- a/static/MySQL/70531_p_dog_clear_calc_user.sql +++ b/static/MySQL/70531_p_dog_clear_calc_user_access.sql @@ -1,10 +1,11 @@ USE fetchmetrics; -DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_user; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_user_access; +DROP PROCEDURE IF EXISTS fetchmetrics.p_dog_clear_calc_user_access; DELIMITER // -CREATE PROCEDURE fetchmetrics.p_dog_clear_calc_user ( +CREATE PROCEDURE fetchmetrics.p_dog_clear_calc_user_access ( IN a_guid BINARY(36) , IN a_debug BIT ) @@ -16,9 +17,9 @@ BEGIN START TRANSACTION; - DELETE CALC_USER_T - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid + DELETE CALC_USER_ACCESS_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_ACCESS_T + WHERE CALC_USER_ACCESS_T.GUID = a_guid ; COMMIT; @@ -31,13 +32,13 @@ DELIMITER ; /* -CALL fetchmetrics.p_dog_clear_calc_user ( +CALL fetchmetrics.p_dog_clear_calc_user_access ( 'chips ' -- a_guid , 1 -- debug ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71001_p_dog_calc_dog.sql b/static/MySQL/71001_p_dog_calc_dog.sql index 4227706..308c906 100644 --- a/static/MySQL/71001_p_dog_calc_dog.sql +++ b/static/MySQL/71001_p_dog_calc_dog.sql @@ -404,7 +404,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -426,7 +426,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.guid = a_guid LIMIT 1 ; @@ -453,7 +453,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71001_p_dog_clear_calc_dog.sql b/static/MySQL/71001_p_dog_clear_calc_dog.sql index b61fbc0..e883ccb 100644 --- a/static/MySQL/71001_p_dog_clear_calc_dog.sql +++ b/static/MySQL/71001_p_dog_clear_calc_dog.sql @@ -37,7 +37,7 @@ CALL fetchmetrics.p_dog_clear_calc_dog ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71001_p_dog_get_many_dog.sql b/static/MySQL/71001_p_dog_get_many_dog.sql index 3ad9dd0..3d3e9d3 100644 --- a/static/MySQL/71001_p_dog_get_many_dog.sql +++ b/static/MySQL/71001_p_dog_get_many_dog.sql @@ -163,7 +163,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid-- guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -185,7 +185,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -214,7 +214,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71003_p_dog_save_command.sql b/static/MySQL/71003_p_dog_save_command.sql index b0a46c2..80757a4 100644 --- a/static/MySQL/71003_p_dog_save_command.sql +++ b/static/MySQL/71003_p_dog_save_command.sql @@ -489,7 +489,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -511,12 +511,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71102_p_dog_save_command_category.sql b/static/MySQL/71102_p_dog_save_command_category.sql index d1caffc..ad186d8 100644 --- a/static/MySQL/71102_p_dog_save_command_category.sql +++ b/static/MySQL/71102_p_dog_save_command_category.sql @@ -349,7 +349,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -371,12 +371,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index 933a04a..3902903 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -908,7 +908,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -930,7 +930,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -957,7 +957,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71104_p_dog_clear_calc_command.sql b/static/MySQL/71104_p_dog_clear_calc_command.sql index 51eaf4e..be91d02 100644 --- a/static/MySQL/71104_p_dog_clear_calc_command.sql +++ b/static/MySQL/71104_p_dog_clear_calc_command.sql @@ -43,7 +43,7 @@ CALL fetchmetrics.p_dog_clear_calc_command ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71104_p_dog_get_many_command.sql b/static/MySQL/71104_p_dog_get_many_command.sql index 9e4a865..41dbde6 100644 --- a/static/MySQL/71104_p_dog_get_many_command.sql +++ b/static/MySQL/71104_p_dog_get_many_command.sql @@ -199,7 +199,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -221,7 +221,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -250,7 +250,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71108_p_dog_get_many_dog_command_link.sql b/static/MySQL/71108_p_dog_get_many_dog_command_link.sql index 5c07816..fb86d32 100644 --- a/static/MySQL/71108_p_dog_get_many_dog_command_link.sql +++ b/static/MySQL/71108_p_dog_get_many_dog_command_link.sql @@ -302,7 +302,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -324,7 +324,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -351,7 +351,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71110_p_dog_save_dog_command_link.sql b/static/MySQL/71110_p_dog_save_dog_command_link.sql index 14fd346..c92ffae 100644 --- a/static/MySQL/71110_p_dog_save_dog_command_link.sql +++ b/static/MySQL/71110_p_dog_save_dog_command_link.sql @@ -457,7 +457,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -479,12 +479,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71111_p_dog_calc_command_modality.sql b/static/MySQL/71111_p_dog_calc_command_modality.sql index 46e1a98..d9e8531 100644 --- a/static/MySQL/71111_p_dog_calc_command_modality.sql +++ b/static/MySQL/71111_p_dog_calc_command_modality.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71111_p_dog_clear_calc_command_modality.sql b/static/MySQL/71111_p_dog_clear_calc_command_modality.sql index 080a523..3e5b231 100644 --- a/static/MySQL/71111_p_dog_clear_calc_command_modality.sql +++ b/static/MySQL/71111_p_dog_clear_calc_command_modality.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_command_modality ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71111_p_dog_get_many_command_modality.sql b/static/MySQL/71111_p_dog_get_many_command_modality.sql index bac968f..323f3d1 100644 --- a/static/MySQL/71111_p_dog_get_many_command_modality.sql +++ b/static/MySQL/71111_p_dog_get_many_command_modality.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index 9219f0e..730cf08 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -480,7 +480,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -502,7 +502,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -529,7 +529,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71200_p_dog_clear_calc_location.sql b/static/MySQL/71200_p_dog_clear_calc_location.sql index eb61c5a..927c7a2 100644 --- a/static/MySQL/71200_p_dog_clear_calc_location.sql +++ b/static/MySQL/71200_p_dog_clear_calc_location.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_location ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71200_p_dog_get_many_location.sql b/static/MySQL/71200_p_dog_get_many_location.sql index a08ec2d..2d992ff 100644 --- a/static/MySQL/71200_p_dog_get_many_location.sql +++ b/static/MySQL/71200_p_dog_get_many_location.sql @@ -167,7 +167,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -189,7 +189,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -218,7 +218,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71202_p_dog_save_location.sql b/static/MySQL/71202_p_dog_save_location.sql index 17b460c..1c6d548 100644 --- a/static/MySQL/71202_p_dog_save_location.sql +++ b/static/MySQL/71202_p_dog_save_location.sql @@ -363,7 +363,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -385,12 +385,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71220_p_dog_calc_button_shape.sql b/static/MySQL/71220_p_dog_calc_button_shape.sql index c581e51..5cd351b 100644 --- a/static/MySQL/71220_p_dog_calc_button_shape.sql +++ b/static/MySQL/71220_p_dog_calc_button_shape.sql @@ -424,7 +424,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -446,7 +446,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -473,7 +473,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71220_p_dog_clear_calc_button_shape.sql b/static/MySQL/71220_p_dog_clear_calc_button_shape.sql index 2962dff..cf0f762 100644 --- a/static/MySQL/71220_p_dog_clear_calc_button_shape.sql +++ b/static/MySQL/71220_p_dog_clear_calc_button_shape.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_button_shape ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71220_p_dog_get_many_button_shape.sql b/static/MySQL/71220_p_dog_get_many_button_shape.sql index 267614f..dc7b431 100644 --- a/static/MySQL/71220_p_dog_get_many_button_shape.sql +++ b/static/MySQL/71220_p_dog_get_many_button_shape.sql @@ -165,7 +165,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -187,7 +187,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -216,7 +216,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71224_p_dog_calc_colour.sql b/static/MySQL/71224_p_dog_calc_colour.sql index 7838ced..5bf36cd 100644 --- a/static/MySQL/71224_p_dog_calc_colour.sql +++ b/static/MySQL/71224_p_dog_calc_colour.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71224_p_dog_clear_calc_colour.sql b/static/MySQL/71224_p_dog_clear_calc_colour.sql index 076eb91..d98fd30 100644 --- a/static/MySQL/71224_p_dog_clear_calc_colour.sql +++ b/static/MySQL/71224_p_dog_clear_calc_colour.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_colour ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71224_p_dog_get_many_colour.sql b/static/MySQL/71224_p_dog_get_many_colour.sql index c66358b..05d137b 100644 --- a/static/MySQL/71224_p_dog_get_many_colour.sql +++ b/static/MySQL/71224_p_dog_get_many_colour.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71228_p_dog_calc_image.sql b/static/MySQL/71228_p_dog_calc_image.sql index 3735f02..22bd989 100644 --- a/static/MySQL/71228_p_dog_calc_image.sql +++ b/static/MySQL/71228_p_dog_calc_image.sql @@ -717,7 +717,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -739,7 +739,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -766,7 +766,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71228_p_dog_clear_calc_image.sql b/static/MySQL/71228_p_dog_clear_calc_image.sql index 023e4b8..5961485 100644 --- a/static/MySQL/71228_p_dog_clear_calc_image.sql +++ b/static/MySQL/71228_p_dog_clear_calc_image.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_image ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71228_p_dog_get_many_image.sql b/static/MySQL/71228_p_dog_get_many_image.sql index 1544c1b..f33c9a9 100644 --- a/static/MySQL/71228_p_dog_get_many_image.sql +++ b/static/MySQL/71228_p_dog_get_many_image.sql @@ -190,7 +190,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -212,7 +212,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -241,7 +241,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71232_p_dog_calc_button_icon.sql b/static/MySQL/71232_p_dog_calc_button_icon.sql index 1cc6554..7d382c7 100644 --- a/static/MySQL/71232_p_dog_calc_button_icon.sql +++ b/static/MySQL/71232_p_dog_calc_button_icon.sql @@ -767,7 +767,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -789,7 +789,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -816,7 +816,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71232_p_dog_clear_calc_button_icon.sql b/static/MySQL/71232_p_dog_clear_calc_button_icon.sql index 902c66f..2e4a3b0 100644 --- a/static/MySQL/71232_p_dog_clear_calc_button_icon.sql +++ b/static/MySQL/71232_p_dog_clear_calc_button_icon.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_button_icon ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71232_p_dog_get_many_button_icon.sql b/static/MySQL/71232_p_dog_get_many_button_icon.sql index 5d36310..6704ea1 100644 --- a/static/MySQL/71232_p_dog_get_many_button_icon.sql +++ b/static/MySQL/71232_p_dog_get_many_button_icon.sql @@ -190,7 +190,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -212,7 +212,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -241,7 +241,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71234_p_dog_save_button_icon.sql b/static/MySQL/71234_p_dog_save_button_icon.sql index d679f9b..4ce9a41 100644 --- a/static/MySQL/71234_p_dog_save_button_icon.sql +++ b/static/MySQL/71234_p_dog_save_button_icon.sql @@ -324,7 +324,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -346,12 +346,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71238_p_dog_get_many_command_button_link.sql b/static/MySQL/71238_p_dog_get_many_command_button_link.sql index ff94e95..99866db 100644 --- a/static/MySQL/71238_p_dog_get_many_command_button_link.sql +++ b/static/MySQL/71238_p_dog_get_many_command_button_link.sql @@ -389,7 +389,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -411,7 +411,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -438,7 +438,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71240_p_dog_save_command_button_link.sql b/static/MySQL/71240_p_dog_save_command_button_link.sql index 559277f..fc758e4 100644 --- a/static/MySQL/71240_p_dog_save_command_button_link.sql +++ b/static/MySQL/71240_p_dog_save_command_button_link.sql @@ -538,7 +538,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -560,12 +560,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71300_p_dog_calc_weather.sql b/static/MySQL/71300_p_dog_calc_weather.sql index c4f3eef..37f00de 100644 --- a/static/MySQL/71300_p_dog_calc_weather.sql +++ b/static/MySQL/71300_p_dog_calc_weather.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71300_p_dog_clear_calc_weather.sql b/static/MySQL/71300_p_dog_clear_calc_weather.sql index 0cbdac7..6573ab0 100644 --- a/static/MySQL/71300_p_dog_clear_calc_weather.sql +++ b/static/MySQL/71300_p_dog_clear_calc_weather.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_weather ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71300_p_dog_get_many_weather.sql b/static/MySQL/71300_p_dog_get_many_weather.sql index c3f26cc..b2d8025 100644 --- a/static/MySQL/71300_p_dog_get_many_weather.sql +++ b/static/MySQL/71300_p_dog_get_many_weather.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71304_p_dog_calc_lighting_level.sql b/static/MySQL/71304_p_dog_calc_lighting_level.sql index 8b33b8c..34e4531 100644 --- a/static/MySQL/71304_p_dog_calc_lighting_level.sql +++ b/static/MySQL/71304_p_dog_calc_lighting_level.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71304_p_dog_clear_calc_lighting_level.sql b/static/MySQL/71304_p_dog_clear_calc_lighting_level.sql index c74c943..c9941a0 100644 --- a/static/MySQL/71304_p_dog_clear_calc_lighting_level.sql +++ b/static/MySQL/71304_p_dog_clear_calc_lighting_level.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_lighting_level ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71304_p_dog_get_many_lighting_level.sql b/static/MySQL/71304_p_dog_get_many_lighting_level.sql index 422a9e4..7714a84 100644 --- a/static/MySQL/71304_p_dog_get_many_lighting_level.sql +++ b/static/MySQL/71304_p_dog_get_many_lighting_level.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71308_p_dog_calc_assessment.sql b/static/MySQL/71308_p_dog_calc_assessment.sql index bd1d2d3..e83143f 100644 --- a/static/MySQL/71308_p_dog_calc_assessment.sql +++ b/static/MySQL/71308_p_dog_calc_assessment.sql @@ -461,7 +461,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user ( + CALL fetchmetrics.p_dog_calc_user_access ( a_guid -- a_guid , a_get_all_user_handler -- a_get_all_user , a_get_inactive_user_handler -- a_get_inactive_user @@ -506,7 +506,7 @@ BEGIN , CALC_USER_T.does_meet_id_filters , CALC_USER_T.does_meet_non_id_filters - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid ; @@ -891,7 +891,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -913,7 +913,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -940,7 +940,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71308_p_dog_clear_calc_assessment.sql b/static/MySQL/71308_p_dog_clear_calc_assessment.sql index f5dc853..a3b96b1 100644 --- a/static/MySQL/71308_p_dog_clear_calc_assessment.sql +++ b/static/MySQL/71308_p_dog_clear_calc_assessment.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_assessment ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71308_p_dog_get_many_assessment.sql b/static/MySQL/71308_p_dog_get_many_assessment.sql index 1b29fea..cbd2c67 100644 --- a/static/MySQL/71308_p_dog_get_many_assessment.sql +++ b/static/MySQL/71308_p_dog_get_many_assessment.sql @@ -197,7 +197,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -219,7 +219,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -248,7 +248,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71310_p_dog_save_assessment.sql b/static/MySQL/71310_p_dog_save_assessment.sql index c73210d..bdf0f6b 100644 --- a/static/MySQL/71310_p_dog_save_assessment.sql +++ b/static/MySQL/71310_p_dog_save_assessment.sql @@ -323,7 +323,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -345,12 +345,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71312_p_dog_calc_distraction_type.sql b/static/MySQL/71312_p_dog_calc_distraction_type.sql index 7da7334..92fe5d0 100644 --- a/static/MySQL/71312_p_dog_calc_distraction_type.sql +++ b/static/MySQL/71312_p_dog_calc_distraction_type.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71312_p_dog_clear_calc_distraction_type.sql b/static/MySQL/71312_p_dog_clear_calc_distraction_type.sql index 79cf134..40e159f 100644 --- a/static/MySQL/71312_p_dog_clear_calc_distraction_type.sql +++ b/static/MySQL/71312_p_dog_clear_calc_distraction_type.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_distraction_type ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71312_p_dog_get_many_distraction_type.sql b/static/MySQL/71312_p_dog_get_many_distraction_type.sql index 2e6b33d..1b755f9 100644 --- a/static/MySQL/71312_p_dog_get_many_distraction_type.sql +++ b/static/MySQL/71312_p_dog_get_many_distraction_type.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql index e2ae6f0..89f7351 100644 --- a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71316_p_dog_clear_calc_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_clear_calc_distraction_intensity_level.sql index 0c9bb96..100c991 100644 --- a/static/MySQL/71316_p_dog_clear_calc_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_clear_calc_distraction_intensity_level.sql @@ -37,7 +37,7 @@ CALL fetchmetrics.p_dog_clear_calc_distraction_intensity_level ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql index 9138044..06200e8 100644 --- a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71320_p_dog_calc_distraction.sql b/static/MySQL/71320_p_dog_calc_distraction.sql index 0158b79..58d04e6 100644 --- a/static/MySQL/71320_p_dog_calc_distraction.sql +++ b/static/MySQL/71320_p_dog_calc_distraction.sql @@ -1307,7 +1307,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -1329,7 +1329,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -1356,7 +1356,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71320_p_dog_clear_calc_distraction.sql b/static/MySQL/71320_p_dog_clear_calc_distraction.sql index 9eb6530..591f75b 100644 --- a/static/MySQL/71320_p_dog_clear_calc_distraction.sql +++ b/static/MySQL/71320_p_dog_clear_calc_distraction.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_distraction ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71320_p_dog_get_many_distraction.sql b/static/MySQL/71320_p_dog_get_many_distraction.sql index dcb61a1..4175471 100644 --- a/static/MySQL/71320_p_dog_get_many_distraction.sql +++ b/static/MySQL/71320_p_dog_get_many_distraction.sql @@ -269,7 +269,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -291,7 +291,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -320,7 +320,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71322_p_dog_save_distraction.sql b/static/MySQL/71322_p_dog_save_distraction.sql index e06d7f1..cd29c79 100644 --- a/static/MySQL/71322_p_dog_save_distraction.sql +++ b/static/MySQL/71322_p_dog_save_distraction.sql @@ -434,7 +434,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -456,12 +456,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71324_p_dog_calc_bribe.sql b/static/MySQL/71324_p_dog_calc_bribe.sql index 9b2057a..ccca465 100644 --- a/static/MySQL/71324_p_dog_calc_bribe.sql +++ b/static/MySQL/71324_p_dog_calc_bribe.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71324_p_dog_clear_calc_bribe.sql b/static/MySQL/71324_p_dog_clear_calc_bribe.sql index 0364d5c..b9ca463 100644 --- a/static/MySQL/71324_p_dog_clear_calc_bribe.sql +++ b/static/MySQL/71324_p_dog_clear_calc_bribe.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_bribe ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71324_p_dog_get_many_bribe.sql b/static/MySQL/71324_p_dog_get_many_bribe.sql index ee37cce..03f5560 100644 --- a/static/MySQL/71324_p_dog_get_many_bribe.sql +++ b/static/MySQL/71324_p_dog_get_many_bribe.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql b/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql index 123845e..004c8fd 100644 --- a/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql +++ b/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql @@ -1109,7 +1109,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -1131,7 +1131,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -1158,7 +1158,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71328_p_dog_clear_calc_assessment_command_modality_link.sql b/static/MySQL/71328_p_dog_clear_calc_assessment_command_modality_link.sql index 7daf05f..33c89ee 100644 --- a/static/MySQL/71328_p_dog_clear_calc_assessment_command_modality_link.sql +++ b/static/MySQL/71328_p_dog_clear_calc_assessment_command_modality_link.sql @@ -37,7 +37,7 @@ CALL fetchmetrics.p_dog_clear_calc_assessment_command_modality_link ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql b/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql index f26f45b..4a2793c 100644 --- a/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql +++ b/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql @@ -269,7 +269,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -291,7 +291,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -320,7 +320,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql index f726511..c95c490 100644 --- a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql +++ b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql @@ -380,7 +380,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -402,12 +402,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71332_p_dog_calc_response_quality_metric.sql b/static/MySQL/71332_p_dog_calc_response_quality_metric.sql index 71ad988..92941e1 100644 --- a/static/MySQL/71332_p_dog_calc_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_calc_response_quality_metric.sql @@ -462,7 +462,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -484,7 +484,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -511,7 +511,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71332_p_dog_clear_calc_response_quality_metric.sql b/static/MySQL/71332_p_dog_clear_calc_response_quality_metric.sql index 6981302..4246208 100644 --- a/static/MySQL/71332_p_dog_clear_calc_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_clear_calc_response_quality_metric.sql @@ -37,7 +37,7 @@ CALL fetchmetrics.p_dog_clear_calc_response_quality_metric ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql index 26cc39e..4227a22 100644 --- a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql @@ -163,7 +163,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -185,7 +185,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -214,7 +214,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71336_p_dog_calc_obedience_level.sql b/static/MySQL/71336_p_dog_calc_obedience_level.sql index af902a9..8696ba3 100644 --- a/static/MySQL/71336_p_dog_calc_obedience_level.sql +++ b/static/MySQL/71336_p_dog_calc_obedience_level.sql @@ -372,7 +372,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -394,7 +394,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -421,7 +421,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71336_p_dog_clear_calc_obedience_level.sql b/static/MySQL/71336_p_dog_clear_calc_obedience_level.sql index e9aa472..ed7e1b4 100644 --- a/static/MySQL/71336_p_dog_clear_calc_obedience_level.sql +++ b/static/MySQL/71336_p_dog_clear_calc_obedience_level.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_obedience_level ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71336_p_dog_get_many_obedience_level.sql b/static/MySQL/71336_p_dog_get_many_obedience_level.sql index a7c4321..ab9a332 100644 --- a/static/MySQL/71336_p_dog_get_many_obedience_level.sql +++ b/static/MySQL/71336_p_dog_get_many_obedience_level.sql @@ -161,7 +161,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -183,7 +183,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -212,7 +212,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71340_p_dog_calc_assessment_response.sql b/static/MySQL/71340_p_dog_calc_assessment_response.sql index a046eeb..978fc33 100644 --- a/static/MySQL/71340_p_dog_calc_assessment_response.sql +++ b/static/MySQL/71340_p_dog_calc_assessment_response.sql @@ -1019,7 +1019,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid -- a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -1041,7 +1041,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -1068,7 +1068,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71340_p_dog_clear_calc_assessment_response.sql b/static/MySQL/71340_p_dog_clear_calc_assessment_response.sql index 45644a4..574d062 100644 --- a/static/MySQL/71340_p_dog_clear_calc_assessment_response.sql +++ b/static/MySQL/71340_p_dog_clear_calc_assessment_response.sql @@ -38,7 +38,7 @@ CALL fetchmetrics.p_dog_clear_calc_assessment_response ( ); SELECT * -FROM fetchmetrics.DOG_Calc_User_Temp +FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips ' ; diff --git a/static/MySQL/71340_p_dog_get_many_assessment_response.sql b/static/MySQL/71340_p_dog_get_many_assessment_response.sql index 79bd854..dbbfbd3 100644 --- a/static/MySQL/71340_p_dog_get_many_assessment_response.sql +++ b/static/MySQL/71340_p_dog_get_many_assessment_response.sql @@ -292,7 +292,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -314,7 +314,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -343,7 +343,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71342_p_dog_save_assessment_response.sql b/static/MySQL/71342_p_dog_save_assessment_response.sql index 3b972c9..7c231ea 100644 --- a/static/MySQL/71342_p_dog_save_assessment_response.sql +++ b/static/MySQL/71342_p_dog_save_assessment_response.sql @@ -283,7 +283,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -305,12 +305,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql b/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql index 7a87701..22fc56b 100644 --- a/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql +++ b/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql @@ -234,7 +234,7 @@ BEGIN -- Permissions -- Can Create - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -256,12 +256,12 @@ BEGIN IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CU_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CU_T WHERE CU_T.GUID = a_guid LIMIT 1 ; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71601_p_ph_save_contact_form.sql b/static/MySQL/71601_p_ph_save_contact_form.sql index 6ef3809..b7b11be 100644 --- a/static/MySQL/71601_p_ph_save_contact_form.sql +++ b/static/MySQL/71601_p_ph_save_contact_form.sql @@ -201,7 +201,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -223,7 +223,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_admin - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -234,7 +234,7 @@ BEGIN SELECT * FROM tmp_Msg_Error t_ERROR; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); @@ -260,7 +260,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -282,7 +282,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -293,7 +293,7 @@ BEGIN SELECT * FROM tmp_Msg_Error t_ERROR; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71603_p_ph_get_many_contact_form.sql b/static/MySQL/71603_p_ph_get_many_contact_form.sql index a1aec6d..7bccbac 100644 --- a/static/MySQL/71603_p_ph_get_many_contact_form.sql +++ b/static/MySQL/71603_p_ph_get_many_contact_form.sql @@ -166,7 +166,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -188,7 +188,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -223,7 +223,7 @@ BEGIN DELETE FROM tmp_Contact_Form; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql index 97f453e..8448aa2 100644 --- a/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql +++ b/static/MySQL/71620_p_ph_save_apply_founding_partner_form.sql @@ -369,7 +369,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -391,7 +391,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_admin - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -402,7 +402,7 @@ BEGIN SELECT * FROM tmp_Msg_Error t_ERROR; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); @@ -428,7 +428,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( a_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -450,7 +450,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_create - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; @@ -461,7 +461,7 @@ BEGIN SELECT * FROM tmp_Msg_Error t_ERROR; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( a_guid , 0 -- a_debug ); diff --git a/static/MySQL/71622_p_ph_get_many_founding_partner_form.sql b/static/MySQL/71622_p_ph_get_many_founding_partner_form.sql index ed81c97..2a64157 100644 --- a/static/MySQL/71622_p_ph_get_many_founding_partner_form.sql +++ b/static/MySQL/71622_p_ph_get_many_founding_partner_form.sql @@ -166,7 +166,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -188,7 +188,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -223,7 +223,7 @@ BEGIN DELETE FROM tmp_Apply_Founding_Partner_Form; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index 788e29d..e199231 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -92,17 +92,32 @@ INSERT INTO fetchmetrics.DOG_Permission_Group ( ) VALUES ( - 0 + 1 , 'DOG' , 'Dog' ) , ( - 1 + 2 + , 'COMPANY' + , 'Company' + ) + , ( + 3 + , 'COMMAND' + , 'Command' + ) + , ( + 4 + , 'ASSESSMENT' + , 'Assessment' + ) + , ( + 100 , 'USER' , 'User' ) , ( - 2 + 200 , 'PROJECT_HUB' , 'Project Hub' ) @@ -125,7 +140,14 @@ VALUES , 1 ) , ( - 1 + 2 + , 'DOG_EDIT' + , 'Edit Dog' + , 1 + , 2 + ) + , ( + 3 , 'DOG_ADMIN' , 'Admin Dog' , 1 @@ -133,44 +155,100 @@ VALUES ) , ( 1 - , 'DOG_CREATE' - , 'Create Dog' - , 1 - , 2 - ) - , ( - 1 - , 'USER_VIEW' - , 'View User' + , 'COMPANY_VIEW' + , 'View Company' , 2 , 1 ) , ( - 1 - , 'USER_ADMIN' - , 'Admin User' + 2 + , 'COMPANY_EDIT' + , 'Edit Company' + , 2 + , 2 + ) + , ( + 3 + , 'COMPANY_ADMIN' + , 'Admin Company' , 2 , 3 ) , ( 1 + , 'COMMAND_VIEW' + , 'View Command' + , 3 + , 1 + ) + , ( + 2 + , 'COMMAND_EDIT' + , 'Edit Command' + , 3 + , 2 + ) + , ( + 3 + , 'COMMAND_ADMIN' + , 'Admin Command' + , 3 + , 3 + ) + , ( + 1 + , 'ASSESSMENT_VIEW' + , 'View Assessment' + , 4 + , 1 + ) + , ( + 2 + , 'ASSESSMENT_EDIT' + , 'Edit Assessment' + , 4 + , 2 + ) + , ( + 3 + , 'ASSESSMENT_ADMIN' + , 'Admin Assessment' + , 4 + , 3 + ) + , ( + 1 + , 'USER_VIEW' + , 'View User' + , 5 + , 1 + ) + , ( + 2 + , 'USER_ADMIN' + , 'Admin User' + , 5 + , 3 + ) + , ( + 3 , 'USER_CREATE' , 'Create User' - , 2 + , 5 , 2 ) , ( 1 , 'CONTACT_FORM_ADMIN' , 'Admin Contact Form' - , 3 + , 6 , 3 ) , ( - 1 + 2 , 'CONTACT_FORM_CREATE' , 'Create Contact Form' - , 3 + , 6 , 4 ) ; @@ -205,7 +283,7 @@ VALUES NULL -- id_user_auth0 , 'Command Bot' -- firstname , 'Bot' -- surname - , 'teddy@fetchmetricsltd.co.uk' -- email + , 'teddy@partsltd.co.uk' -- email , 0 -- is_super_user , 1 -- active ) @@ -213,7 +291,7 @@ VALUES 'auth0|679cc2fe0d652a47af90d16b' -- id_user_auth0 , 'Demo' -- firstname , 'Demo' -- surname - , 'bot@fetchmetricsltd.co.uk' -- email + , 'bot@partsltd.co.uk' -- email , 0 -- is_super_user , 1 -- active ) @@ -229,14 +307,26 @@ INSERT INTO fetchmetrics.DOG_Role ( VALUES ( 1 - , 'MANAGER' - , 'Manager' + , 'SUPER_USER' + , 'Super User' + , 1 + ) + , ( + 4 + , 'CLIENT' + , 'Client' , 1 ) , ( 2 - , 'USER' - , 'User' + , 'COMPANY_MANAGER' + , 'Company Manager' + , 1 + ) + , ( + 3 + , 'TRAINER' + , 'Trainer' , 1 ) ; @@ -298,6 +388,60 @@ VALUES , 1 ) , ( + 1 + , 9 + , 3 + , 1 + ) + , ( + 1 + , 10 + , 3 + , 1 + ) + , ( + 1 + , 11 + , 3 + , 1 + ) + , ( + 1 + , 12 + , 3 + , 1 + ) + , ( + 1 + , 13 + , 3 + , 1 + ) + , ( + 1 + , 14 + , 3 + , 1 + ) + , ( + 1 + , 15 + , 3 + , 1 + ) + , ( + 1 + , 16 + , 3 + , 1 + ) + , ( + 1 + , 17 + , 3 + , 1 + ) + , ( 2 , 1 , 1 @@ -336,7 +480,7 @@ VALUES , ( 2 , 7 - , 4 + , 1 , 1 ) , ( @@ -345,6 +489,264 @@ VALUES , 1 , 1 ) + , ( + 2 + , 9 + , 1 + , 1 + ) + , ( + 2 + , 10 + , 1 + , 1 + ) + , ( + 2 + , 11 + , 1 + , 1 + ) + , ( + 2 + , 12 + , 1 + , 1 + ) + , ( + 2 + , 13 + , 1 + , 1 + ) + , ( + 2 + , 14 + , 1 + , 1 + ) + , ( + 2 + , 15 + , 1 + , 1 + ) + , ( + 2 + , 16 + , 1 + , 1 + ) + , ( + 3 + , 17 + , 1 + , 1 + ) + , ( + 3 + , 1 + , 1 + , 1 + ) + , ( + 3 + , 2 + , 2 + , 1 + ) + , ( + 3 + , 3 + , 1 + , 1 + ) + , ( + 3 + , 4 + , 1 + , 1 + ) + , ( + 3 + , 5 + , 2 + , 1 + ) + , ( + 3 + , 6 + , 1 + , 1 + ) + , ( + 3 + , 7 + , 1 + , 1 + ) + , ( + 3 + , 8 + , 2 + , 1 + ) + , ( + 3 + , 9 + , 1 + , 1 + ) + , ( + 3 + , 10 + , 1 + , 1 + ) + , ( + 3 + , 11 + , 2 + , 1 + ) + , ( + 3 + , 12 + , 1 + , 1 + ) + , ( + 3 + , 13 + , 1 + , 1 + ) + , ( + 3 + , 14 + , 1 + , 1 + ) + , ( + 3 + , 15 + , 1 + , 1 + ) + , ( + 3 + , 16 + , 1 + , 1 + ) + , ( + 3 + , 17 + , 1 + , 1 + ) + , ( + 4 + , 1 + , 1 + , 1 + ) + , ( + 4 + , 2 + , 2 + , 1 + ) + , ( + 4 + , 3 + , 1 + , 1 + ) + , ( + 4 + , 4 + , 1 + , 1 + ) + , ( + 4 + , 5 + , 1 + , 1 + ) + , ( + 4 + , 6 + , 1 + , 1 + ) + , ( + 4 + , 7 + , 1 + , 1 + ) + , ( + 4 + , 8 + , 2 + , 1 + ) + , ( + 4 + , 9 + , 1 + , 1 + ) + , ( + 4 + , 10 + , 1 + , 1 + ) + , ( + 4 + , 11 + , 1 + , 1 + ) + , ( + 4 + , 12 + , 1 + , 1 + ) + , ( + 4 + , 13 + , 1 + , 1 + ) + , ( + 4 + , 14 + , 1 + , 1 + ) + , ( + 4 + , 15 + , 1 + , 1 + ) + , ( + 4 + , 16 + , 1 + , 1 + ) + , ( + 4 + , 17 + , 1 + , 1 + ) ; -- User Role link @@ -361,7 +763,7 @@ VALUES ) , ( 2 - , 2 + , 3 , 1 ) , ( diff --git a/static/MySQL/70530_p_dog_calc_user.sql b/static/MySQL/deprecated/70504_p_dog_calc_user.sql similarity index 97% rename from static/MySQL/70530_p_dog_calc_user.sql rename to static/MySQL/deprecated/70504_p_dog_calc_user.sql index b7f9a3f..5462762 100644 --- a/static/MySQL/70530_p_dog_calc_user.sql +++ b/static/MySQL/deprecated/70504_p_dog_calc_user.sql @@ -748,7 +748,7 @@ BEGIN -- Export data to staging table IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Calc_User) THEN START TRANSACTION; - INSERT INTO fetchmetrics.DOG_Calc_User_Temp ( + INSERT INTO fetchmetrics.DOG_Calc_User_Access_Temp ( guid , id_user , id_permission_required @@ -803,8 +803,8 @@ BEGIN SELECT 'End'; SELECT * FROM tmp_Msg_Error_Calc_User; SELECT * FROM tmp_Calc_User; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = a_guid; - CALL fetchmetrics.p_dog_clear_calc_user ( a_guid, a_debug ); + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = a_guid; + CALL fetchmetrics.p_dog_clear_calc_user_access ( a_guid, a_debug ); END IF; -- Clean up @@ -840,13 +840,13 @@ DELIMITER ; , IN a_debug BIT --- SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; -SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = 'chips '; -CALL fetchmetrics.p_dog_clear_calc_user ( 'chips ', 0 ); --- SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; +-- SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips '; +CALL fetchmetrics.p_dog_clear_calc_user_access ( 'chips ', 0 ); +-- SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User; -DELETE FROM fetchmetrics.DOG_Calc_User_Temp; +DELETE FROM fetchmetrics.DOG_Calc_User_Access_Temp; CALL fetchmetrics.p_dog_calc_user( 'chips '-- a_guid @@ -865,9 +865,9 @@ CALL fetchmetrics.p_dog_calc_user( , 1 -- a_show_errors , 0 -- a_debug ); -SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = 'chips '; -CALL fetchmetrics.p_dog_clear_calc_user ( 'chips ', 0 ); +SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = 'chips '; +CALL fetchmetrics.p_dog_clear_calc_user_access ( 'chips ', 0 ); DROP TABLE IF EXISTS tmp_Msg_Error_Calc_User; -*/ +*/ \ No newline at end of file diff --git a/static/MySQL/70516_p_dog_create_new_user_auth0.sql b/static/MySQL/deprecated/70516_p_dog_create_new_user_auth0.sql similarity index 92% rename from static/MySQL/70516_p_dog_create_new_user_auth0.sql rename to static/MySQL/deprecated/70516_p_dog_create_new_user_auth0.sql index 9966800..9d11bba 100644 --- a/static/MySQL/70516_p_dog_create_new_user_auth0.sql +++ b/static/MySQL/deprecated/70516_p_dog_create_new_user_auth0.sql @@ -340,10 +340,10 @@ BEGIN , 0 -- a_show_errors , 0 -- a_debug ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- guid , a_id_user -- ids_user , FALSE -- get_inactive_user @@ -354,17 +354,17 @@ BEGIN ); IF a_debug = 1 THEN - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = v_guid; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = v_guid; END IF; UPDATE tmp_User t_U - INNER JOIN fetchmetrics.DOG_Calc_User_Temp CUT + INNER JOIN fetchmetrics.DOG_Calc_User_Access_Temp CUT ON CUT.GUID = v_guid AND t_U.id_user = CUT.id_user SET t_U.can_admin_dog = CUT.can_admin ; - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); END IF; -- Can admin user @@ -379,10 +379,10 @@ BEGIN , 0 -- a_show_errors , 0 -- a_debug ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- guid , a_id_user -- ids_user , FALSE -- get_inactive_user @@ -393,17 +393,17 @@ BEGIN ); IF a_debug = 1 THEN - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = v_guid; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = v_guid; END IF; UPDATE tmp_User t_U - INNER JOIN fetchmetrics.DOG_Calc_User_Temp CUT + INNER JOIN fetchmetrics.DOG_Calc_User_Access_Temp CUT ON CUT.GUID = v_guid AND t_U.id_user = CUT.id_user SET t_U.can_admin_user = CUT.can_admin ; - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); END IF; -- Permissions @@ -418,10 +418,10 @@ BEGIN , 0 -- a_show_errors , 0 -- a_debug ; - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid -- guid , a_id_user -- ids_user , FALSE -- get_inactive_user @@ -432,12 +432,12 @@ BEGIN ); IF a_debug = 1 THEN - SELECT * FROM fetchmetrics.DOG_Calc_User_Temp WHERE GUID = v_guid; + SELECT * FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = v_guid; END IF; IF NOT EXISTS ( SELECT can_view - FROM fetchmetrics.DOG_Calc_User_Temp CUT + FROM fetchmetrics.DOG_Calc_User_Access_Temp CUT WHERE CUT.GUID = v_guid AND can_view = 1 @@ -450,14 +450,14 @@ BEGIN VALUES ( v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('You do not have view permissions for ', (SELECT name FROM fetchmetrics.DOG_Permission P INNER JOIN fetchmetrics.DOG_Calc_User_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1)) + , CONCAT('You do not have view permissions for ', (SELECT name FROM fetchmetrics.DOG_Permission P INNER JOIN fetchmetrics.DOG_Calc_User_Access_Temp CUT ON P.id_permission = CUT.id_permission_required WHERE GUID = v_guid AND IFNULL(can_view, 0) = 0 LIMIT 1)) ) ; ELSE SET a_debug := a_debug; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( v_guid, FALSE ); + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid, FALSE ); END IF; @@ -509,7 +509,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; /* - DELETE FROM fetchmetrics.DOG_Calc_User_Temp + DELETE FROM fetchmetrics.DOG_Calc_User_Access_Temp WHERE GUID = v_guid; */ @@ -543,8 +543,8 @@ CALL p_dog_get_many_user ( );*/ /* -select * FROM fetchmetrics.DOG_Calc_User_Temp; -delete FROM fetchmetrics.DOG_Calc_User_Temp; +select * FROM fetchmetrics.DOG_Calc_User_Access_Temp; +delete FROM fetchmetrics.DOG_Calc_User_Access_Temp; SELECT * FROM fetchmetrics.DOG_USER; diff --git a/static/MySQL/deprecated/71104_p_dog_get_many_command.sql b/static/MySQL/deprecated/71104_p_dog_get_many_command.sql index 148668f..068c7e5 100644 --- a/static/MySQL/deprecated/71104_p_dog_get_many_command.sql +++ b/static/MySQL/deprecated/71104_p_dog_get_many_command.sql @@ -269,7 +269,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -291,7 +291,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -318,7 +318,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql b/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql index 888c726..41d09fc 100644 --- a/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql +++ b/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql @@ -306,7 +306,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_calc_user( + CALL fetchmetrics.p_dog_calc_user_access( v_guid , 0 -- get_all_user , 0 -- get_inactive_user @@ -328,7 +328,7 @@ BEGIN IFNULL(CALC_USER_T.has_access, 0) INTO v_can_view - FROM fetchmetrics.DOG_Calc_User_Temp CALC_USER_T + FROM fetchmetrics.DOG_Calc_User_Access_Temp CALC_USER_T WHERE CALC_USER_T.GUID = v_guid LIMIT 1 ; @@ -355,7 +355,7 @@ BEGIN ; END IF; - CALL fetchmetrics.p_dog_clear_calc_user( + CALL fetchmetrics.p_dog_clear_calc_user_access( v_guid , 0 -- a_debug ); diff --git a/static/css/pages/user/user.css b/static/css/pages/user/user.css new file mode 100644 index 0000000..3dab8b2 --- /dev/null +++ b/static/css/pages/user/user.css @@ -0,0 +1,5 @@ + + +.container-input input { + width: 250px; +} \ No newline at end of file diff --git a/static/css/sections/user.css b/static/css/sections/user.css new file mode 100644 index 0000000..e69de29 diff --git a/static/dist/css/user_account.bundle.css b/static/dist/css/user_account.bundle.css new file mode 100644 index 0000000..88b4cd7 --- /dev/null +++ b/static/dist/css/user_account.bundle.css @@ -0,0 +1,70 @@ + + +.container-input > input { + padding: 0vh 1vh; + border-radius: 0.5vh; + max-width: 7vh; +} + + +/* Right column */ +.rightcolumn { + min-width: fit-content; +} + +/* Main Table */ +#pageBody { + max-height: 88vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0.75vh 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + + + +/*# sourceMappingURL=user_account.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/user_account.bundle.css.map b/static/dist/css/user_account.bundle.css.map new file mode 100644 index 0000000..678621d --- /dev/null +++ b/static/dist/css/user_account.bundle.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/user_account.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;;AAGA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;AACf;IACI,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,mBAAmB;QACnB,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C","sources":["webpack://app/./static/css/sections/dog.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n#pageBody {\n max-height: 88vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0.75vh 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/user_account.bundle.js b/static/dist/js/user_account.bundle.js new file mode 100644 index 0000000..bcd903f --- /dev/null +++ b/static/dist/js/user_account.bundle.js @@ -0,0 +1,23 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +/******/ })() +; +//# sourceMappingURL=user_account.bundle.js.map \ No newline at end of file diff --git a/static/dist/js/user_account.bundle.js.map b/static/dist/js/user_account.bundle.js.map new file mode 100644 index 0000000..1e43515 --- /dev/null +++ b/static/dist/js/user_account.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/user_account.bundle.js","mappings":";;;;AAAA;;;;;;ACAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/dog.css?a9d0","webpack://app/./static/css/sections/user.css","webpack://app/./static/css/pages/user/user.css"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/templates/layouts/_shared_header.html b/templates/layouts/_shared_header.html index 1bfabd7..440cdf6 100644 --- a/templates/layouts/_shared_header.html +++ b/templates/layouts/_shared_header.html @@ -29,11 +29,9 @@ {% endif %} {% if model.user.get_is_logged_in() %} - {# -
- Account -
- #} +
+ Account +
Logout
diff --git a/templates/pages/user/_user.html b/templates/pages/user/_user.html index c06815d..56c90ac 100644 --- a/templates/pages/user/_user.html +++ b/templates/pages/user/_user.html @@ -1,8 +1,8 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} - - + + {% set user = model.users[0] %}
@@ -26,24 +26,36 @@
- -
- {{ user.region_default.name }} + +
+ {{ user.company.name }} - {{ user.company.website }}
-
-
- - -
-
{% include 'components/common/temporary/_overlay_confirm.html' %} {% include 'components/common/temporary/_overlay_error.html' %} +
+ + + {% set class_name = '' %} + {% include 'components/common/buttons/_icon_trash.html' %} + + {% set class_name = model.FLAG_ACTIVE %} + {% set attribute_text = '' %} + {% include 'components/common/buttons/_icon_add.html' %} +
+ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/webpack.config.js b/webpack.config.js index c9bcdb8..a703be9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -114,6 +114,12 @@ module.exports = { path.resolve(__dirname, 'static/css/sections/dog.css'), path.resolve(__dirname, 'static/css/pages/dog/calendar_entries.css') ], + // User + user_account: [ + path.resolve(__dirname, 'static/css/sections/dog.css'), + path.resolve(__dirname, 'static/css/sections/user.css'), + path.resolve(__dirname, 'static/css/pages/user/user.css') + ], }, output: { filename: 'js/[name].bundle.js',