コード例 #1
0
def mapPoints():

    if "filter_species" not in request.args:
        filter_species = None
    else:
        filter_species = request.args.get('filter_species')
        if filter_species == "":
            return jsonify({ "results" : []})

    filter_networks = request.args.get('filter_networks',None)
    filter_networks = [filter_networks] if filter_networks else []

    rm = ReportModel();

    if utils.isAdmin():
        points = rm.getAdminReportsPoints(filterSpecies= filter_species,filterNetworks=filter_networks)

    else:
        points = rm.getReportsPointsComplete(status=4,filterSpecies=filter_species,filterNetworks=filter_networks) \
            + rm.getReportsPointsComplete(status=2,filterSpecies=filter_species,filterNetworks=filter_networks)

        if utils.isLogged():
            pointsUser = rm.getReportsPointsComplete(status=1,filterSpecies=filter_species,idUser=session["id_user"],filterNetworks=filter_networks)
            points = points + pointsUser


    return jsonify( { "results" : points })
コード例 #2
0
ファイル: user.py プロジェクト: GeographicaGS/Elcano-iepg
def user():
    """Gets logged in user info."""
    if not utils.isLogged():        
        return jsonify( { "id" : None})
    else:
        return jsonify({
            'id':session["id_user"],
            'email':session["email"],
            "username":session["username"],
            "name":session["name"],
            "surname":session["surname"],
            "language":session["language"]
        })
コード例 #3
0
def user():
    """Gets logged in user info."""
    if not utils.isLogged():
        return jsonify({"id": None})
    else:
        return jsonify({
            'id': session["id_user"],
            'email': session["email"],
            "username": session["username"],
            "name": session["name"],
            "surname": session["surname"],
            "language": session["language"]
        })
コード例 #4
0
ファイル: user.py プロジェクト: GeographicaGS/Elcano-iepg
def login():
    """
    
    Logs in a user. The JSON is:

      {
        "email": "*****@*****.**",
        "password": "******"
      }
   
    Password is sent in plain.

    """
    if not request.json  or not "email" in request.json or not "password" in request.json:        
        return jsonify({"Login": False})
    
    if utils.isLogged() :        
        return jsonify({"Login": True})
    
    else:
        # login procedure
        # get user input
        email = request.json['email']
        password = request.json['password']
         # do password hash
        password = hashlib.md5(password).hexdigest()
        # compare password against database        
        u = UserModel().getUserLogin(email=email)
        if u and u['password']==password:
            session["id_user"] = u["id_wwwuser"]
            session['email'] = email
            session["username"] = u["username"]
            session["name"] = u["name"]
            session["surname"] = u["surname"]
            session["language"] = u["language"]
            return jsonify({"Login": True})
        
        return jsonify({"Login": False})
コード例 #5
0
def login():
    """
    
    Logs in a user. The JSON is:

      {
        "email": "*****@*****.**",
        "password": "******"
      }
   
    Password is sent in plain.

    """
    if not request.json or not "email" in request.json or not "password" in request.json:
        return jsonify({"Login": False})

    if utils.isLogged():
        return jsonify({"Login": True})

    else:
        # login procedure
        # get user input
        email = request.json['email']
        password = request.json['password']
        # do password hash
        password = hashlib.md5(password).hexdigest()
        # compare password against database
        u = UserModel().getUserLogin(email=email)
        if u and u['password'] == password:
            session["id_user"] = u["id_wwwuser"]
            session['email'] = email
            session["username"] = u["username"]
            session["name"] = u["name"]
            session["surname"] = u["surname"]
            session["language"] = u["language"]
            return jsonify({"Login": True})

        return jsonify({"Login": False})
コード例 #6
0
def get_report_data(id_report):
    #check lang parameter exist
    if "language" not in request.args:
        return make_response(jsonify( { "error": "Mandatory language param missing" } ), 400)

    language = request.args['language']

    # check if it's a valid order
    if language not in app.config["languages"]:
        return make_response(jsonify( { 'error': 'Unknown language value' } ), 400)

    rm = ReportModel()
    report = rm.getReport(id_report, language)

    if report == None:
        return make_response(jsonify( { "error": "Report not found" } ), 404)

    if not utils.isAdmin():
        if  report["id_report_status"]!=4 and report["id_report_status"]!=2 and not utils.isLogged():
            return make_response(jsonify( { 'error': 'Not allowed operation' } ), 400)
        elif report["id_report_status"]!=4 and report["id_report_status"]!=2 and report["id_user"]!=session["id_user"]:
            return make_response(jsonify( { 'error': 'Not allowed operation' } ), 400)

    sm = SpeciesModel()
    nm = ProtectedNetworkModel()
    images = rm.getReportImages(id_report)
    sections = sm.getSpecieSections(report["id_species"],language)
    comments = rm.getReportsComments(id_report)
    habitats = rm.getReportsHabitats(id_report,language)
    # networks = rm.getReportProtetedNetworks(id_report, language)
    networks = nm.getNetworksFromGeom(report['y'], report['x'], language)
    mpas = rm.getReportMpas(id_report, language)

    imagesJson = []
    # if not report["historic"]:
    if len(images)>0:
        for img in images:
            imagesJson.append({
                "url": app.config["reportImageUrl"] + "/" +  str(img["id_image"]) + "_2400_2400.jpg"
            })
    else:
        # Checks first 0020 image, then 0010
        imgurl = ''
        imagebase = app.config["guideImagesGalleryPath"] + "/" + str(report['id_species']) +  "_0020_" + language.upper() +".jpg"
        if os.path.isfile(imagebase):
            imgurl = app.config["guideImagesGalleryUrl"] + "/" + str(report['id_species']) +  "_0020_" + language.upper() +".jpg"
        else:
            imagebase = app.config["guideImagesGalleryPath"] + "/" + str(report['id_species']) +  "_0010_" + language.upper() +".jpg"
            if os.path.isfile(imagebase):
                imgurl = app.config["guideImagesGalleryUrl"] + "/" + str(report['id_species']) +  "_0010_" + language.upper() +".jpg"

        imagesJson.append({"url" : imgurl})

    sectionsJson = []
    for s in sections:
        sectionsJson.append({"id": s["id_section"], "name" : s["section_name"] , "content" : s["content"]})

    commentsJson = []
    for c in comments:
        commentsJson.append({
            "id": c["id_report_comments"],
            "comment": base.utils.htmlspecialchars((c["comment"])),
            "date": str(c["date"]) + " UTC",
            "username" : c["username"],
            "name" : c["name"],
            "surname" : c["surname"],
            "user_email": c["email"]
        })

    habitatsDict = {}
    for h in habitats:
        el = { "id": h["id"],"type" : h["type"] }
        if habitatsDict.get(h["category"]) == None:
            habitatsDict[h["category"]] = [el]
        else:
            habitatsDict[h["category"]].append(el)

    response = {
        "id" : report["id_report"],
        "specie" : {
            "id" : report["id_species"],
            "scientific_name" : report["scientific_name"],
            "common_name" : report["common_name"],
            "thumbnail" : species.getThumbnailSpecie(report["id_species"]),
            "taxonomic" : report["group"],
            "dark_color" : report["dark_color"],
            "light_color" : report["light_color"],
            "id_taxonomic": report["id_taxonomic"]
        },
        "date" : str(report["date"]),
        "mpa": {
            "id": report["id_mpa"],
            "name" : report["mpa"]
        },
        "user" : {
            "id": report["id_user"],
            "username" : report["username"],
            "image" : utils.getGravatar(report["user_email"]),
            "name": report["family_name"] + " " +report["surname"]
        },
        "images": imagesJson,
        "author": report['author'],
        "author_gravatar": utils.getGravatar(report["author"]),
        "sections" : sectionsJson,
        "comments" : commentsJson,
        "habitats" : habitatsDict,
        "x": report["x"],
        "y": report["y"],
        "country": report["country"],
        "lower_depth": report["lower_depth"],
        "upper_depth": report["upper_depth"],
        "city": report["city"],
        "status": report["id_report_status"],
        "status_str": report["status_str"],
        "historic": report["historic"],
        "abundance": base.utils.htmlspecialchars(report["abundance"]),
        "networks" :networks
    }

    return response