示例#1
0
    def post(self):
        args = self.reqparse.parse_args()
        email = args.get("email")
        passwd = args.get("password")
        tipo = args.get("tipo")

        user = None
        if tipo == 'ALUMNO':
            if (email.find('@') != -1):
                user = Alumno.objects(email=email).first()
            else:
                user = Alumno.objects(nombre_usuario=email).first()

        elif tipo == 'ADMINISTRADOR':
            if (email.find('@') != -1):
                user = Administrador.objects(email=email).first()
            else:
                user = Administrador.objects(nombre_usuario=email).first()

        elif tipo == 'PROFESOR':
            if (email.find('@') != -1):
                user = Profesor.objects(email=email).first()
            else:
                user = Profesor.objects(nombre_usuario=email).first()

        if user != None and user.activo and user.check_password(passwd):
            res = []
            if tipo == "ALUMNO":
                res_bd = Curso.objects(alumnos__in=[user],
                                       clon_padre=None,
                                       activo=True,
                                       publicado=True).all()
            else:
                res_bd = Curso.objects(profesor=user,
                                       clon_padre=None,
                                       activo=True).all()
            for resource in res_bd:
                res.append({
                    "id":
                    str(resource.id),
                    "nombre":
                    resource.nombre,
                    "fecha_creacion":
                    resource.fecha_creacion.isoformat(),
                    "activo":
                    resource.activo,
                    "version":
                    resource.version,
                    "id_base":
                    str(resource.curso_base.id),
                })
            return {
                'respuesta': user.to_dict(),
                'tipo': tipo,
                'token': str(user.get_token()),
                'recursos': res
            }
        return abort(403)
示例#2
0
    def post(self):
        args = self.reqparse.parse_args()
        email = args.get("email")
        passwd = args.get("password")
        tipo = args.get("tipo")
        recursos = []
        user = None

        if tipo == 'ALUMNO':
            user = Alumno.objects(email=email).first()
            for recurso in Curso.objects(alumnos__in=[user]).all():
                recursos.append(recurso.to_dict())
        elif tipo == 'ADMINISTRADOR':
            user = administrador = Administrador.objects(email=email).first()
        elif tipo == 'PROFESOR':
            user = Profesor.objects(email=email).first()
            for recurso in Curso.objects(profesor=user).all():
                recursos.append(recurso.to_dict())

        if user and user.activo and user.check_password(passwd):
            return {
                'respuesta': {
                    'id': str(user.id)
                },
                'tipo': tipo,
                'token': str(user.get_token()),
                'recursos': recursos
            }
        print('testingggg')
        return {'respuesta': 'no_existe'}, 401
示例#3
0
def test_get_admin_token(client):
    with api.app.app_context():
        administrador = Administrador.objects().first()
        token = administrador.get_token()
        rv = client.get('/administrador', headers={'auth-token': token})
        if rv._status_code == 200:
            return True
        assert False
示例#4
0
def test_get_administrador(client):
    administrador = Administrador.objects().first()
    if (administrador == None):
        assert False
    rv = client.get('/administradores/' + str(administrador.id))
    if rv._status_code == 200:
        return True
    assert False
示例#5
0
def test_get_finalizar_tutorial_admin(client):
    with api.app.app_context():
        administrador = Administrador.objects().first()
        if administrador == None:
            assert False
        rv = client.get('/administrador/finalizar/tutorial/' +
                        str(administrador.id))
        if rv._status_code == 200:
            return True
        assert False
示例#6
0
 def get(self, id):
     args = self.reqparse.parse_args()
     token = args.get('auth-token')
     alumno = Alumno.load_from_token(token)
     apoderado = Apoderado.load_from_token(token)
     administrador = Administrador.load_from_token(token)
     profesor = Profesor.load_from_token(token)
     if alumno == None and apoderado == None and administrador == None and profesor == None:
         return {'response': 'user_invalid'}, 401
     return Administrador.objects(id=id).first().to_dict()
示例#7
0
    def post(self, id):
        data = request.data.decode()
        data = json.loads(data)
        institucion = Institucion.objects(id=id).first()
        administrador = Administrador.objects(
            email=data['email'], institucion=institucion.id).first()
        profesor = Profesor.objects(email=data['email'],
                                    institucion=institucion.id).first()
        alumno = Alumno.objects(email=data['email'],
                                institucion=institucion.id).first()
        if administrador != None:
            if (administrador.check_password(data['password'])
                    or administrador.activo == False):
                token = administrador.get_token()
                return {
                    'respuesta': {
                        'id': str(administrador.id)
                    },
                    'tipo': 'ADMINISTRADOR',
                    'token': str(token)
                }
            else:
                return {'respuesta': 'no_existe'}, 401

        if profesor != None:
            if (profesor.check_password(data['password'])
                    or administrador.activo == False):
                token = profesor.get_token()
                return {
                    'respuesta': {
                        'id': str(profesor.id)
                    },
                    'tipo': 'PROFESOR',
                    'token': str(token)
                }
            else:
                return {'respuesta': 'no_existe'}, 401

        if alumno != None:
            if (alumno.check_password(data['password'])
                    or administrador.activo == False):
                token = alumno.get_token()
                return {
                    'respuesta': {
                        'id': str(alumno.id)
                    },
                    'tipo': 'ALUMNO',
                    'token': str(token)
                }
            else:
                return {'respuesta': 'no_existe'}, 401

        else:
            return {'respuesta': 'no_existe'}, 404
示例#8
0
def AdminGenerate():
    administrador = Administrador.objects().all()
    if (len(administrador) == 0):
        admin = Administrador()
        admin.nombres = 'admin'
        admin.apellido_paterno = 'paterno'
        admin.apellido_materno = 'materno'
        admin.email = '*****@*****.**'
        admin.telefono = '+56999999999'
        admin.nombre_usuario = 'admin'
        admin.encrypt_password('pass')
        admin.save()
示例#9
0
    def post(self):
        args = self.reqparse.parse_args()
        email = args.get("email")
        tipo = args.get("tipo")

        user = None
        if tipo == 'ALUMNO':
            if (email.find('@') != -1):
                user = Alumno.objects(email=email).first()
            else:
                user = Alumno.objects(nombre_usuario=email).first()
        elif tipo == 'ADMINISTRADOR':
            if (email.find('@') != -1):
                user = Administrador.objects(email=email).first()
            else:
                user = Administrador.objects(nombre_usuario=email).first()
        elif tipo == 'PROFESOR':
            if (email.find('@') != -1):
                user = Profesor.objects(email=email).first()
            else:
                user = Profesor.objects(nombre_usuario=email).first()
        if user and user.activo and user.check_password(args.get("password")):
            recursos = []
            if tipo == 'ALUMNO':
                for recurso in Curso.objects(alumnos__in=[user],
                                             clon_padre=None).all():
                    recursos.append(recurso.to_dict())
            elif tipo == 'PROFESOR':
                for recurso in Curso.objects(profesor=user,
                                             clon_padre=None).all():
                    recursos.append(recurso.to_dict())
            return {
                'respuesta': {
                    'id': str(user.id)
                },
                'tipo': tipo,
                'token': str(user.get_token()),
                'recursos': recursos
            }
        return {'respuesta': 'no_existe'}, 401
示例#10
0
 def delete(self, id):
     args = self.reqparse.parse_args()
     token = args.get('auth-token')
     alumno = Alumno.load_from_token(token)
     apoderado = Apoderado.load_from_token(token)
     administrador = Administrador.load_from_token(token)
     profesor = Profesor.load_from_token(token)
     if alumno == None and apoderado == None and administrador == None and profesor == None:
         return {'response': 'user_invalid'}, 401
     administrador = Administrador.objects(id=id).first()
     administrador.activo = False
     administrador.save()
     return {'Response': 'borrado'}
示例#11
0
 def put(self, id):
     administrador = Administrador.objects(id=id).first()
     data = request.data.decode()
     data = json.loads(data)
     administrador.nombres = data['nombres']
     administrador.apellido_paterno = data['apellido_paterno']
     administrador.apellido_materno = data['apellido_materno']
     administrador.email = data['email']
     administrador.telefono = data['telefono']
     administrador.nombre_usuario = data['nombre_usuario']
     administrador.password = data['password']
     administrador.save()
     return {'Response': 'exito'}
示例#12
0
 def get(self, id):
     administrador = Administrador.objects(id=id).first()
     imagen = Image.open(
         current_app.config.get("BASE_PATH") +
         "uploads/administradores/default_thumbnail.jpg")
     imagen.thumbnail((800, 800))
     imagen.save(
         os.path.join(
             current_app.config.get("BASE_PATH") +
             "uploads/administradores",
             str(id) + '_thumbnail.jpg'))
     administrador.imagen = str(administrador.id)
     administrador.save()
     return {'Response': 'exito'}
示例#13
0
def test_delete_secciones(client):
    with api.app.app_context():
        seccion = newSeccion()
        administrador = Administrador.objects().first()
        administrador.institucion = setInstitucion()
        administrador.save()
        token = administrador.get_token()
        if seccion == None:
            assert False
        rv = client.delete('/secciones/' + str(seccion.id),
                           headers={'auth-token': token})
        if rv._status_code == 200:
            return True
        assert False
示例#14
0
def test_get_recurso_cargar(client):
    with api.app.app_context():
        administrador = Administrador.objects().first()
        administrador.institucion = setInstitucion()
        administrador.save()
        token = administrador.get_token()
        recurso = Curso.objects().first()
        if recurso == None:
            assert False
        rv = client.get('/recursos/' + str(recurso.id),
                        headers={'auth-token': token})
        if rv._status_code == 200:
            return True
        assert False
示例#15
0
 def get(self):
     args = self.reqparse.parse_args()
     token = args.get('auth-token')
     alumno = Alumno.load_from_token(token)
     apoderado = Apoderado.load_from_token(token)
     administrador = Administrador.load_from_token(token)
     profesor = Profesor.load_from_token(token)
     if alumno == None and apoderado == None and administrador == None and profesor == None:
         return {'response': 'user_invalid'}, 401
     response = []
     for administrador in Administrador.objects(activo=True).all():
         if administrador.activo:
             response.append(administrador.to_dict())
     return response
示例#16
0
def test_put_seccion_bajar(client):
    with api.app.app_context():
        seccion = newSeccion()
        administrador = Administrador.objects().first()
        administrador.institucion = setInstitucion()
        administrador.save()
        token = administrador.get_token()
        if seccion == None:
            assert False
        return True  # Quitar cuando se resuelva el problema
        rv = client.put('/seccion/bajar/' + str(seccion.id),
                        headers={'auth-token': token})
        if rv._status_code == 200:
            return True
        assert False
示例#17
0
 def post(self, id):
     imagen = Image.open(request.files['imagen'].stream).convert("RGB")
     imagen.save(
         os.path.join(
             current_app.config.get("BASE_PATH") +
             "uploads/administradores",
             str(id) + ".jpg"))
     imagen.thumbnail((800, 800))
     imagen.save(
         os.path.join(
             current_app.config.get("BASE_PATH") +
             "uploads/administradores",
             str(id) + '_thumbnail.jpg'))
     administrador = Administrador.objects(id=id).first()
     administrador.imagen = id
     administrador.save()
     return {'Response': 'exito', 'id': str(administrador.id)}
示例#18
0
    def post(self):
        data = request.data.decode()
        data = json.loads(data)
        if(data['tipo'] == 'ADMINISTRADOR'):
            administrador = Administrador.objects(email = data['email']).first()
            if(administrador == None):
                return {'respuesta': 'no_existe'}
            else:
                if administrador.check_password(data['password']):
                    token = administrador.get_token()
                    return {'tipo': 'ADMINISTRADOR','token': str(token)}
                else:
                    return {'respuesta': 'no_existe'}

        if(data['tipo'] == 'PROFESOR'):
            profesor = Profesor.objects(email = data['email']).first()
            if(profesor == None):
                return {'respuesta': 'no_existe'}
            else:
                if profesor.check_password(data['password']):
                    token = profesor.get_token()
                    return {'tipo': 'PROFESOR','token': str(token)}
                else:
                    return {'respuesta': 'no_existe'}
        
        if(data['tipo'] == 'ALUMNO'):
            alumno = Alumno.objects(email = data['email']).first()
            if(alumno == None):
                return {'respuesta': 'no_existe'}
            else:
                if alumno.check_password(data['password']):
                    token = alumno.get_token()
                    return {'tipo': 'ALUMNO','token': str(token)}
                else:
                    return {'respuesta': 'no_existe'}

        if(data['tipo'] == 'APODERADO'):
            apoderado = Apoderado.objects(email = data['email']).first()
            if(apoderado == None):
                return {'respuesta': 'no_existe'}
            else:
                if apoderado.check_password(data['password']):
                    token = apoderado.get_token()
                    return {'tipo': 'APODERADO','token': str(token)}
                else:
                    return {'respuesta': 'no_existe'}
示例#19
0
def test_put_administrador(client):
    administrador = Administrador.objects().first()
    if (administrador == None):
        assert False

    data = {
        'nombres': 'nombre admin',
        'apellido_paterno': 'paterno',
        'apellido_materno': 'materno',
        'email': '*****@*****.**',
        'telefono': '+569',
        'nombre_usuario': 'usuario',
        'password': '******'
    }
    data = json.dumps(data)
    data = data.encode()
    rv = client.put('/administradores/' + str(administrador.id), data=data)
    if rv._status_code == 200:
        return True
    assert False
示例#20
0
 def put(self, id):
     args = self.reqparse.parse_args()
     token = args.get('auth-token')
     administrador = Administrador.load_from_token(token)
     administrador_editar = Administrador.objects(id=id).first()
     if administrador == None and administrador_editar == None:
         return {'response': 'user_invalid'}, 401
     data = request.data.decode()
     data = json.loads(data)
     administrador_editar.nombres = data['nombres']
     administrador_editar.apellido_paterno = data['apellido_paterno']
     administrador_editar.apellido_materno = data['apellido_materno']
     administrador_editar.telefono = data['telefono']
     administrador_editar.email = data['email']
     administrador_editar.rut = data['rut']
     direccion = Direccion(calle=data['calle'],
                           numero=data['numero'],
                           comuna=data['comuna'],
                           cas_dep_of=data['cas_dep_of'])
     administrador_editar.direccion = direccion
     administrador_editar.save()
     return {'Response': 'exito', 'id': str(administrador_editar.id)}
示例#21
0
    def post(self):
        data = request.data.decode()
        data = json.loads(data)
        administrador = None
        profesor = None
        alumno = None
        if (data['email'].find('@') != -1):
            administrador = Administrador.objects(email=data['email']).first()
            profesor = Profesor.objects(email=data['email']).first()
            alumno = Alumno.objects(email=data['email']).first()
        else:
            administrador = Administrador.objects(
                nombre_usuario=data['email']).first()
            profesor = Profesor.objects(nombre_usuario=data['email']).first()
            alumno = Alumno.objects(nombre_usuario=data['email']).first()
        if administrador != None:
            if (administrador.check_password(data['password'])
                    or administrador.activo == False):
                if administrador.institucion == None:
                    return {'respuesta': 'no_existe'}, 401
                else:
                    token = administrador.get_token()
                    return {
                        'respuesta': {
                            'id': str(administrador.id)
                        },
                        'tipo': 'ADMINISTRADOR',
                        'token': str(token)
                    }
            else:
                return {'respuesta': 'no_existe'}, 401

        if profesor != None:
            if (profesor.check_password(data['password'])
                    or profesor.activo == False):
                if profesor.institucion == None:
                    return {'respuesta': 'no_existe'}, 401
                else:
                    token = profesor.get_token()
                    return {
                        'respuesta': {
                            'id': str(profesor.id)
                        },
                        'tipo': 'PROFESOR',
                        'token': str(token)
                    }
            else:
                return {'respuesta': 'no_existe'}, 401

        if alumno != None:
            if (alumno.check_password(data['password'])
                    or alumno.activo == False):
                if alumno.institucion == None:
                    return {'respuesta': 'no_existe'}, 401
                else:
                    token = alumno.get_token()
                    return {
                        'respuesta': {
                            'id': str(alumno.id)
                        },
                        'tipo': 'ALUMNO',
                        'token': str(token)
                    }
            else:
                return {'respuesta': 'no_existe'}, 401

        else:
            return {'respuesta': 'no_existe'}, 404
示例#22
0
 def get(self, id):
     administrador = Administrador.objects(id=id).first()
     administrador.primera_vez = False
     administrador.save()
     return {'Response': 'exito'}
示例#23
0
 def get(self, id):
     return json.loads(Administrador.objects(id=id).first().to_json())
示例#24
0
 def get(self):
     print(Administrador.objects().all().to_json())
     return json.loads(Administrador.objects().all().to_json())
示例#25
0
def administradorEncriptacion():
    for administrador in Administrador.objects().all():
        administrador.encrypt_password(administrador.password)
        administrador.save()