diff --git a/app/ae_obj_types_def.py b/app/ae_obj_types_def.py index 2fc994c..c1e7ef7 100644 --- a/app/ae_obj_types_def.py +++ b/app/ae_obj_types_def.py @@ -435,6 +435,41 @@ obj_type_kv_li = { 'mdl_in': None, 'mdl_out': None, }, + # Updated 2025-04-04 + 'person': { + 'tbl': 'v_person', + 'tbl_default': 'v_person', + 'tbl_alt': 'v_person', + 'tbl_update': 'person', + 'mdl': Person_Base, + 'mdl_default': Person_Base, + 'mdl_in': Person_Base, # For input + 'mdl_out': Person_Base, # For output + 'exp_default': [ + 'person_id_random', + 'given_name', 'middle_name', 'family_name', 'full_name', + 'primary_email', + 'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on', + ], + }, + # Updated 2025-04-04 + 'user': { + 'tbl': 'v_user', + 'tbl_default': 'v_user', + 'tbl_alt': 'v_user', + 'tbl_update': 'user', + 'mdl': User_Base, + 'mdl_default': User_Base, + 'mdl_in': User_New_Base, # For input when creating a new user + 'mdl_out': User_Out_Base, # For output + 'exp_default': [ + 'user_id_random', + 'account_id_random', # Foreign key to account + 'username', 'name', 'email', + # Passwords should not be exported. + 'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on', + ], + }, } # WARNING: These must be updated soon! @@ -475,12 +510,12 @@ obj_type_kv_li['organization'] = {'table_name': 'v_organization', 'tbl_name_upda obj_type_kv_li['page'] = {'table_name': 'page', 'tbl_name_update': 'page', 'base_name': Page_Base} -obj_type_kv_li['person'] = {'table_name': 'v_person', 'tbl_name_update': 'person', 'base_name': Person_Base} +# obj_type_kv_li['person'] = {'table_name': 'v_person', 'tbl_name_update': 'person', 'base_name': Person_Base} obj_type_kv_li['site'] = {'table_name': 'site', 'tbl_name_update': 'site', 'base_name': Site_Base} obj_type_kv_li['site_domain'] = {'table_name': 'v_site_domain', 'table_name_alt': 'v_site_domain_fqdn_id', 'tbl_name_update': 'site_domain', 'base_name': Site_Domain_Base, 'base_name_alt': Site_Domain_FQDN_ID_Base} # NOTE check view name: *_detail? -obj_type_kv_li['user'] = {'table_name': 'v_user', 'tbl_name_update': 'user', 'base_name': User_Base} +# obj_type_kv_li['user'] = {'table_name': 'v_user', 'tbl_name_update': 'user', 'base_name': User_Base} obj_type_kv_li['user_role'] = {'table_name': 'v_user_role', 'tbl_name_update': 'user_role', 'base_name': User_Role_Base} # NOTE check view name: *_detail? diff --git a/app/routers/user.py b/app/routers/user.py index 0642f26..34e2c03 100644 --- a/app/routers/user.py +++ b/app/routers/user.py @@ -245,12 +245,20 @@ async def user_authenticate( # sql_select(table_name='user', data=user_data) - sql = f""" - SELECT `user`.id AS 'user_id', `user`.id_random AS 'user_id_random', `user`.password, `user`.enable, `user`.enable_from, `user`.enable_to - FROM `user` AS `user` - WHERE `user`.account_id = :account_id AND `user`.username = :username - LIMIT 1 - """ + if not null_account_id: + sql = f""" + SELECT `user`.id AS 'user_id', `user`.id_random AS 'user_id_random', `user`.password, `user`.enable, `user`.enable_from, `user`.enable_to + FROM `user` AS `user` + WHERE `user`.account_id = :account_id AND `user`.username = :username + LIMIT 1 + """ + else: + sql = f""" + SELECT `user`.id AS 'user_id', `user`.id_random AS 'user_id_random', `user`.password, `user`.enable, `user`.enable_from, `user`.enable_to + FROM `user` AS `user` + WHERE `user`.account_id IS NULL AND `user`.username = :username + LIMIT 1 + """ # This will return a list if selecting by account ID if user_rec_result := sql_select(data=user_data, sql=sql):