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
Example #6
0
    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
Example #9
0
 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