def allprofiles():
    admin = False
    if users.isAdmin(users.user_id()): 
        admin = True       
    if not admin:
        return redirect("/")
    else:
        allUsers = users.getUsers()
    return render_template("allprofiles.html", users=allUsers)     
Example #2
0
 def checkEnterCity(self, peer, ident):
     '''Checks if user can enter city and if so, what permissions.'''
     # TODO: Check if city is active, if not send tiles to be simulated
     # TODO: Flag city as active
     userName = users.getNameFromPeer(peer)
     city = self.cities[ident]
     container = proto.Container()
     if users.isAdmin(userName) or userName == city.mayor:
         container.enterCity = ident
     elif users.canUser(userName, ident, 'viewCity'):
         container.enterCity = ident
     else:
         container.response = "You lack permission to enter city."
     messenger.send("sendData", [peer, container])
def editprivileges(id):
    admin = False
    if users.isAdmin(users.user_id()):
        admin = True       
    if not admin:
        return redirect("/")
    if request.method == "GET":
        return render_template("editprivileges.html", id=id)    
    if request.method == "POST":
        newTeacher = request.form["newTeacher"]
        newAdmin = request.form["newAdmin"]
        if users.editprivileges(id, newTeacher, newAdmin):
            return redirect("/profile/" + str(id))
        else:
            return render_template("editprivileges.html", message="Tapahtui virhe, yritä uudelleen tai peruuta")
def profile(id):
    loggedIn = False 
    teacher = False
    admin = False
    if users.isAdmin(users.user_id()):
        admin = True 
    if users.isTeacher(users.user_id()):
        teacher = True  
    if users.user_id() == id:
        loggedIn = True        
    if not loggedIn and not teacher and not admin:
        return redirect("/")
    else:
        username = users.getUsername(id)
        joinedCourses = courses.getJoinedCourses(id)
        teachingCourses = courses.getTeachersCourses(id)
        return render_template("profile.html", isAdmin=admin, isTeacher=teacher, id=id, loggedIn=loggedIn, username=username, joinedCourses=joinedCourses, teachingCourses=teachingCourses)    
Example #5
0
 def processData(self, peer, data):
     """
     processes serialized network event object into internal message system
     """
     container = proto.Container()
     container.ParseFromString(data)
     logger.debug("Data from: %s\nData: %s" % (peer, container))
     # Parsing chain!
     # Great care will need to be taken on when to use if, else, and elif
     # If the profile for this process takes too long
     if container.HasField("login"):
         self.login(peer, container.login)
     # If the player is not logged in we will not process any other message
     if peer not in users.peers:
         print "Unauthorized message from", peer, ". Skipping."
         return
     if container.HasField("chat"):
         messenger.send("onChat", [peer, container.chat])
     if container.HasField("requestServerState"):
         messenger.send("requestServerState", [peer])
     elif container.HasField("requestMaps"):
         messenger.send("requestMaps", [peer])
     elif container.HasField("mapRequest"):
         # Make sure user is admin!
         name = users.getNameFromPeer(peer)
         if users.isAdmin(name):
             messenger.send("mapRequest", [container.mapRequest])
     elif container.HasField("newCityRequest"):
         messenger.send("newCityRequest", [peer, container.newCityRequest])
     elif container.HasField("requestGameState"):
         if not container.requestGameState:
             messenger.send("sendGameState", [peer])
     elif container.HasField("requestUnfoundCity"):
         messenger.send("requestUnfoundCity",
                        [peer, container.requestUnfoundCity])
     elif container.HasField("requestEnterCity"):
         messenger.send("requestEnterCity",
                        [peer, container.requestEnterCity])
     elif container.HasField('requestExitCity'):
         messenger.send('requestExitCity', [
             peer,
         ])
def delete(id):
    allow = False
    isAdmin = False
    if users.isAdmin(users.user_id()):
        allow = True
        isAdmin = True
    if users.user_id() == id:
        allow = True
    if not allow:
        return redirect("/profile/" + str(id))
    if request.method == "GET":
        username = users.getUsername(id)
        return render_template("delete.html", isAdmin=isAdmin, id=id, username=username)    
    if request.method == "POST":
        if users.isTeacher(id):
            return render_template("delete.html", isAdmin=isAdmin, id=id, message="Et voi poistaa käyttäjää, joka on opettaja.")
        if users.deleteUser(id):
            users.logout()
            return redirect("/")        
    return render_template("delete.html", isAdmin=isAdmin, id=id, message="Käyttäjän poistaminen epäonnistui, yritä uudelleen")         
Example #7
0
def login():
    if "user" in session:
        redirect(url_for('home'))
    if request.method == "GET":
        if "redirect_url" in request.values:
            return render_template("login.html", redirect_url=request.values["redirect_url"])
        else:
            return render_template("login.html")
        
    elif request.method == "POST":
        if Users.login(request.values["user"], request.values["password"]):
            session["user"] = request.values["user"]
            if Users.isAdmin(session["user"]):
                set_navigation_menu('admin')
            else:
                set_navigation_menu('user')
            if "redirect_url" in request.values:
                return redirect(request.values["redirect_url"])
            else:
                return redirect(url_for('home'))
        else:
            return render_template("login.html", error="Incorrect user ID or password")
Example #8
0
 def processData(self, peer, data):
     """
     processes serialized network event object into internal message system
     """
     container = proto.Container()
     container.ParseFromString(data)
     logger.debug("Data from: %s\nData: %s" %(peer, container))
     # Parsing chain!
     # Great care will need to be taken on when to use if, else, and elif
     # If the profile for this process takes too long
     if container.HasField("login"):
         self.login(peer, container.login)
     # If the player is not logged in we will not process any other message
     if peer not in users.peers:
         print "Unauthorized message from", peer, ". Skipping."
         return
     if container.HasField("chat"):
         messenger.send("onChat", [peer, container.chat])
     if container.HasField("requestServerState"):
         messenger.send("requestServerState", [peer])
     elif container.HasField("requestMaps"):
         messenger.send("requestMaps", [peer])
     elif container.HasField("mapRequest"):
         # Make sure user is admin!
         name = users.getNameFromPeer(peer)
         if users.isAdmin(name):
             messenger.send("mapRequest", [container.mapRequest])
     elif container.HasField("newCityRequest"):
         messenger.send("newCityRequest", [peer, container.newCityRequest])
     elif container.HasField("requestGameState"):
         if not container.requestGameState:
             messenger.send("sendGameState", [peer])
     elif container.HasField("requestUnfoundCity"):
         messenger.send("requestUnfoundCity", [peer, container.requestUnfoundCity])
     elif container.HasField("requestEnterCity"):
         messenger.send("requestEnterCity", [peer, container.requestEnterCity])
     elif container.HasField('requestExitCity'):
         messenger.send('requestExitCity', [peer,])
def index():
    allow = False
    if users.isAdmin(users.user_id()):
        allow = True       
    return render_template("index.html", isAdmin=allow)
Example #10
0
 def g(*args, **kwargs):
     if Users.isAdmin(session["user"]):
         return f(*args, **kwargs)
     else:
         return redirect(url_for('home'))
Example #11
0
def gmap_trips():
    return render_template("gmap_trips.html", admin=Users.isAdmin(session["user"]))
Example #12
0
def stats_admin():
    if "id" not in request.values:
        return abort(400)
    stats = Users.get_stats(request.values["id"])
    return render_template("stats.html", stats=stats)

@app.route("/trips.json", methods=['get'])
@require_login
def trips_json():
    try:
        startDate = datetime.strptime(request.values["startDate"], "%d/%m/%Y").strftime("%Y-%m-%dT%H-%M-%S")
        endDate = datetime.strptime(request.values["endDate"], "%d/%m/%Y").strftime("%Y-%m-%dT%H-%M-%S")
    except Exception, e:
        print e
        return abort(400)
    if Users.isAdmin(session["user"]):
        try:
            userID = request.values["userID"]
            data = Trips.query_user_period(userID, startDate, endDate)
            return jsonify(data=data)
        except Exception, e:
            print e
            try:
                bicycleID = request.values["bicycleID"]
                data = Trips.query_bicycle_period(bicycleID, startDate, endDate)
                return jsonify(data=data)
            except Exception, e:
                print e
                return abort(400)
    else:
        data = Trips.query_user_period(session["user"], startDate, endDate)