def addTransference(self, data, user_id): subject = 'Registro de Transferencia' user_msg = None user = getObjById(user_id, self.user_control) user_name = (user.get('nombres'), user.get('apellidos')) if self.transf_control.add(data): admin = self.assig_control.defineManager(rc_cargo, rc_cod_secc, rc_cod_sede, data.get('id')) admin_name = (admin.get('nombres'), admin.get('apellidos')) admin_msg = buildMsgEmail(admin_msg_transf, admin_name, {'CC': user.get('id')}) self.email_sender.sendMessage(subject, admin_msg, [admin.get('email')], [data.get('transf_carta')]) user_msg = buildMsgEmail(user_msg_transf, user_name) info = 200, 'Transference Added' else: fail_msg = "Ha habido un fallo en su proceso de crecion de transferencia" user_msg = buildMsgEmail(user_msg_transf, admin_name, fail_msg) info = 304, 'Not Modified' self.email_sender.sendMessage(subject, user_msg, [user.get('email')]) return info
def loginAdmin(self, data): subject = 'Ingreso a Homologaciones CUN' admin_msg = None user = None id = data.get('id') if id: user = self.admin_control.findById(id) else: ftr = { 'and': [{ 'variable': 'email', 'comparisson': '=', 'value': "'{}'".format(data.get('email')) }] } user = self.admin_control.findByFilter(ftr) if user: fuser = getObjById(user[0], self.admin_control) if check_password_hash(fuser.get('password'), data.get('password')): admin_name = (fuser.get('nombres'), fuser.get('apellidos')) admin_msg = buildMsgEmail(admin_msg_login, admin_name) self.email_sender.sendMessage(subject, admin_msg, [fuser.get('email')]) return 200, id return 401, 'Server: Admin Unauthorized' return 404, 'Server: Admin not found'
def getAdminById(self, id): user = getObjById(id, self.admin_control) if not user: return 404, "Admin not found" del user['password'] # if user.get('imagen'): # img = Image.open(user.get('imagen'), mode='r') # imgByteArr = io.BytesIO() # imgByteArr = imgByteArr.getvalue() # imgByteArr = base64.encodebytes(imgByteArr).decode('ascii') # user['imagen'] = imgByteArr return 200, user
def updateTransference(self, data, id_transf): subject = 'Actualizacion de Transferencia' user_msg = admin_msg_aux = admin_msg_anr = None current_trasnf = getObjById(id_transf, self.transf_control) user = getObjById(current_trasnf.get('usuario_id'), self.user_control) user_name = (user.get('nombres'), user.get('apellidos')) if self.transf_control.update(data, id_transf): if not 'borrado' in list(data.keys()): admin_aux_reg = self.assig_control.defineManager( axr_cargo, axr_cod_secc, axr_cod_sede, id_transf) admin_anr_reg = self.assig_control.defineManager( anr_cargo, anr_cod_secc, anr_cod_sede, id_transf) admin_aux_name = (admin_aux_reg.get('nombres'), admin_aux_reg.get('apellidos')) admin_anr_name = (admin_anr_reg.get('nombres'), admin_anr_reg.get('apellidos')) user_data = {'C.c.': user.get('id')} admin_msg_aux = buildMsgEmail(admin_msg_upt_transf, admin_aux_name, user_data) admin_msg_anr = buildMsgEmail(admin_msg_upt_transf, admin_anr_name, user_data) self.email_sender.sendMessage(subject, admin_msg_anr, [admin_anr_reg.get('email')]) self.email_sender.sendMessage(subject, admin_msg_aux, [admin_aux_reg.get('email')]) user_msg = buildMsgEmail(user_msg_upt_transf, user_name) info = 200, 'Tranference Modified' else: fail_msg = "Ha habido un fallo en el proceso de actualizacion" user_msg = buildMsgEmail(user_msg_upt_transf, user_name, fail_msg) info = 304, 'Not Modified' self.email_sender.sendMessage(subject, user_msg, [user.get('email')]) return info
def defineManager(self, cargo, cod_secc, cod_sede, transf=None): print('Server: Defining manager') f = { 'and': [ { 'variable': 'disponibilidad', 'comparisson': '=', 'value': 1 }, { 'variable': 'cargo', 'comparisson': '=', 'value': "'{}'".format(cargo) }, { 'variable': 'cod_secc', 'comparisson': '=', 'value': "'{}'".format(cod_secc) }, { 'variable': 'cod_sede', 'comparisson': '=', 'value': "'{}'".format(cod_sede) } ] } user_id = self.admin_control.findByFilter(f) if not user_id: data_upt = { "disponibilidad": 1 } filter_upt = f filter_upt['and'][0] = { 'variable': 'disponibilidad', 'comparisson': '=', 'value': 0 } data_updated = True if self.admin_control.updateAllData(data_upt, filter_upt) else False print('Server: User distribution prepared' if data_updated else 'Server: Error in user distribution') return self.defineManager(cargo, cod_secc, cod_sede, transf) data = getObjById(user_id[0][0], self.admin_control) data_upt = { "disponibilidad": 0 } asigned = self.modifyManagers(data.get('id'), transf) print('Server: Admin Asigned'if asigned else 'Error: Error in admin Assination') data_updated = True if self.admin_control.update(data_upt, data.get('id')) else False print('Server: User distribution prepared' if data_updated else 'Server: Error in user distribution') return data
def addUser(self, data): subject = 'Registro homologaciones CUN' user_msg = admin_msg = None data['password'] = generate_password_hash(data.get('id'), method='pbkdf2:sha256', salt_length=10) f = { 'and': [{ 'variable': 'email', 'comparisson': '=', 'value': "'{}'".format(data.get('email')) }] } user_mail = self.user_control.findByFilter(f) admin = self.assig_control.defineManager(cargo, cod_secc, cod_sede) admin_name = (admin.get('nombres'), admin.get('apellidos')) if not getObjById(data.get('id'), self.user_control): if not user_mail: user_name = (data.get('nombres'), data.get('apellidos')) if self.user_control.add(data): user_msg = buildMsgEmail(user_msg_sign, user_name) del data['password'] admin_msg = buildMsgEmail(admin_msg_sign, admin_name, data) info = 201, 'Server: User Added' else: aux_message = 'Fallo en registro de usuario' user_msg = buildMsgEmail(user_msg_sign, user_name, aux_message) admin_msg = buildMsgEmail(admin_msg_sign, admin_name, aux_message) info = 304, 'Server: Not Modified' else: info = 400, 'Server: Bad request, duplicate email' else: info = 409, 'Server: Conflict, User exists' # Send Email if user_msg: self.email_sender.sendMessage(subject, user_msg, [data.get('email')]) if admin_msg: self.email_sender.sendMessage(subject, admin_msg, [admin.get('email')]) return info
def assignManager(self, id, assign): assigned = assign.get('asignado') if not assigned or assigned == '': assigned = 'default' if assigned == 'default': admin_props = { 'table_name': 'tbl_administradores_transf', 'prefix': 'admin_', 'file_field': ['imagen'] } admin_control = DataController(admin_props) current_admin = getObjById(assign.get('asignador'), admin_control) asign = self.assig_control.defineManager( current_admin.get('cargo'), current_admin.get('cod_secc'), current_admin.get('cod_sede'), id) else: asign = self.assig_control.modifyManagers(assigned, id, assign.get('asignador')) if asign: return 200, 'New Managaer assigned' return 500, 'Fail in new manager assignement'
def updateData(self, id, data): admin_msg = None subject = 'Actualizacion de Cuenta' data = removeEmptyData(data) new_pwd = data.get('password') if new_pwd: if new_pwd == data.get('conf_password'): del data['conf_password'] del data['password'] data['password'] = generate_password_hash( new_pwd, method='pbkdf2:sha256', salt_length=10) else: return 400, 'Bad Request, different passwords' admin = getObjById(id, self.admin_control) admin_name = (admin.get('nombres'), admin.get('apellidos')) if self.admin_control.update(data, id): admin_msg = buildMsgEmail(admin_msg_update, admin_name) info = 200, 'Admin Modified' else: fail_msg = "Ha habido un fallo en el proceso de actualizacion" admin_msg = buildMsgEmail(admin_msg_update, admin_name, fail_msg) info = 304, 'Not Modified' self.email_sender.sendMessage(subject, admin_msg, [admin.get('email')]) return info
def getSubject(self, id): data = getObjById(id, self.subject_control) if data: return 200, data return 404, 'Subject not found'
def showTransf(self, id): data = getObjById(id, self.transf_control) if not data: return 404, 'Transference data not found' return 200, data