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)
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)
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")
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")
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)
def g(*args, **kwargs): if Users.isAdmin(session["user"]): return f(*args, **kwargs) else: return redirect(url_for('home'))
def gmap_trips(): return render_template("gmap_trips.html", admin=Users.isAdmin(session["user"]))
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)