Esempio n. 1
0
def select_aps():
	aps = json.loads(request.form['selected_aps'])
	message = request.form['selected_message']
	aps = [int(ap.replace("ap_", '')) for ap in aps]
	sess = DbSession().get_session()
	ap_equips = sess.query(Equipment).filter(Equipment.ID.in_(aps)).all()
	num_customers = sum([len(ap.get_children()) for ap in ap_equips])
	return render_template("customer_select.html", num_customers=num_customers, aps=ap_equips, message=message, logged_in=True, debug=app.debug)
Esempio n. 2
0
def has_valid_credentials(username, passw):
    db_sess = DbSession().get_session()

    user = get_user(db_sess, username)
    if user and passlib_ctx.verify(passw, user.Password):
        user.Timestamp = time.time()
        db_sess.commit()
        return True
    return False
Esempio n. 3
0
def has_valid_credentials(username, passw):
	db_sess = DbSession().get_session()

	user = get_user(db_sess, username)
	if user and passlib_ctx.verify(passw, user.Password):
		user.Timestamp = time.time()
		db_sess.commit()
		return True
	return False
Esempio n. 4
0
def calc():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])
	sess.commit()
	#wrights = sess.query(Wright).filter(Wright.OwnerId == User.Id).all()
	#jobs = sess.query(Job).filter(Job.OwnerId == User.Id).all()
	if "next_tab" in session:
		current_tab = session["next_tab"]
		del session["next_tab"]
	else:
		current_tab = 0
	return render_template("calc.html", user=user, current_tab=current_tab)
Esempio n. 5
0
def allcall():
	sess = DbSession().get_session()
	aps = sess.query(AccessPoint).all()
	sites = {}
	for ap in aps:
		nl_id = ap.equipment.equipment_ex.network_location.NetworkLocationID
		if nl_id not in sites:
			sites[nl_id] = []
		sites[nl_id].append(ap)

	default_order = sites.keys()
	default_order.sort(key=lambda x: sites[x][0].equipment.equipment_ex.network_location.Name)
	default_order = [(default_order[i], i%2) for i in range(len(default_order))]
	return render_template("allcall.html", sites=sites, site_order=default_order, logged_in=True, debug=app.debug)
Esempio n. 6
0
def pass_time():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])

	time_to_pass = int(request.form["value"])
	if time_to_pass < 0:
		return redirect(url_for("calc"))
	while True:
		job_completed = False
		free_wrights = [wright for wright in user.wrights if not wright.currentJob]
		available_jobs = [job for job in user.jobs if not job.wright and job.TimeCost != 0]
		available_jobs = sorted(available_jobs, key=lambda job: -job.Priority)
		if len(free_wrights) == len(user.wrights) and len(available_jobs) == 0:
			break
		for wright in free_wrights:
			if len(available_jobs) > 0:
				wright.currentJob = available_jobs.pop(0)
				sess.commit()
		print free_wrights, available_jobs

		time_step = min([job.TimeCost for job in user.jobs if job.wright] + [time_to_pass])
		time_to_pass -= time_step
		print time_step
		print [job.TimeCost for job in user.jobs if job.wright]

		for wright in user.wrights:
			if wright.currentJob:
				wright.currentJob.TimeCost -= time_step
				if wright.currentJob.TimeCost == 0:
					wright.currentJob = None
					job_completed = True
		sess.commit()
		if time_to_pass <= 0 and not job_completed:
			break
	session["next_tab"] = 0
	return redirect(url_for("calc"))

app.secret_key = os.urandom(128)

if __name__ == "__main__":
	if "PRODUCTION" in os.environ and bool(os.environ["PRODUCTION"]):
		print("Environment: Production")
	else:
		print("Environment: Development")
		app.debug = True
		app.secret_key = '\xe5\x1e\xe8\xc7h\xccr\x9c7\xee|dN\x85\x8c{-4<\xa5\xe5\x03\xc7?\x16\xc3\x181+\xab\xf3q'
	app.run()
Esempio n. 7
0
def valid_session():
    """Returns True only if there is currently a valid username in the session"""
    db_sess = DbSession().get_session()
    if "username" in session:
        user = get_user(db_sess, session["username"])
        if user and user.Timestamp + (60 * 60 * 24 * 7) > time.time():
            return True
    return False
Esempio n. 8
0
def exec_allcall():
	sess = DbSession().get_session()
	message = request.form['selected_message']
	customers = json.loads(request.form['selected_custs'])
	customers = [int(customer.replace("cust_", '')) for customer in customers]
	customers = sess.query(Customer).filter(Customer.CustomerID.in_(customers)).all()
	
	phone_numbers = [customer.get_first_number() for customer in customers if customer.get_first_number()]

	def cust_iter():
		for number in phone_numbers:
			yield str(number)

	outs = "Message: %s, To call: <br>" % message
	print(outs + ",".join(cust_iter()))

	return render_template("completed.html", logged_in=True, debug=app.debug)
Esempio n. 9
0
def rm_job():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])
	job = sess.query(Job).filter(Job.Id == request.form["id"]).first()
	if job.TimeCost != 0:
		user.GoldPool += job.GoldCost
		user.XpPool += job.XpCost
	sess.delete(job)
	sess.commit()
	return jsonify({"status":1})
Esempio n. 10
0
def add_job():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])
	post = request.form
	quantity = extract_field(post, 'qty_adj', 1)
	for job_num in range(quantity):
		new_job = Job()
		new_job.OwnerId = user.Id

		if not new_job.populate(post):
			return jsonify({"status":0, "error":"Double check fields. Integers only please."}) 
		if job_num > 0:
			new_job.Name += " %d" % (job_num+1)

		if job_num == 0:
			if user.GoldPool < (new_job.GoldCost*quantity):
				return jsonify({"status":0, "error":"Insufficient Gold. Gold remaining: %d. Needed: %d." % (user.GoldPool, new_job.GoldCost*quantity)}) 
			if user.XpPool < (new_job.XpCost*quantity):
				return jsonify({"status":0, "error":"Insufficient Experience. Experience remaining: %d. Needed: %d." % (user.XpPool, new_job.XpCost*quantity)}) 

		user.GoldPool -= new_job.GoldCost
		user.XpPool -= new_job.XpCost

		sess.add(new_job)
	sess.commit()

	session["next_tab"] = 2
	return jsonify({"status":1})
Esempio n. 11
0
def add_wright():
	sess = DbSession().get_session()
	new_wright = Wright()
	#user = sess.query(User).filter(User.Username == session["username"])
	user = get_user(sess, session["username"])
	new_wright.OwnerId = user.Id
	new_wright.Name = request.form["wright_name"]
	sess.add(new_wright)

	sess.commit()
	session["next_tab"] = 2
	return redirect(url_for("calc"))
Esempio n. 12
0
def modify_resources():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])
	op = request.form["action"]
	if op == "add_gold":
		user.GoldPool += int(request.form["value"])
		sess.commit()
		return jsonify({"status":1, "value":str(user.GoldPool)})
	elif op == "add_exp":
		user.XpPool += int(request.form["value"])
		sess.commit()
		return jsonify({"status":1, "value":str(user.XpPool)})
	else:
		return jsonify({"status":0})
Esempio n. 13
0
def create_acct():
	if request.method == "POST":
		username, pw1, pw2 = request.form["username"], request.form["password1"], request.form["password2"]
		if pw1 != pw2:
			return render_template("login.html", create_style="active", error="Passwords do not match. Please try again.")

		sess = DbSession().get_session()
		new_user = create_user(User, username, pw1)
		new_user.XpPool = 0
		new_user.GoldPool = 0
		sess.add(new_user)
		sess.commit()
		
		flash("Account %s created!" % (username))
		return redirect(url_for("login"))
		
	else:
		return render_template("create_acct.html", create_style="active")
Esempio n. 14
0
def pass_time():
	sess = DbSession().get_session()
	user = get_user(sess, session["username"])

	time_to_pass = int(request.form["value"])
	if time_to_pass < 0:
		return redirect(url_for("calc"))
	while True:
		job_completed = False
		free_wrights = [wright for wright in user.wrights if not wright.currentJob]
		available_jobs = [job for job in user.jobs if not job.wright and job.TimeCost != 0]
		available_jobs = sorted(available_jobs, key=lambda job: -job.Priority)
		if len(free_wrights) == len(user.wrights) and len(available_jobs) == 0:
			break
		for wright in free_wrights:
			if len(available_jobs) > 0:
				wright.currentJob = available_jobs.pop(0)
				sess.commit()
		print free_wrights, available_jobs

		time_step = min([job.TimeCost for job in user.jobs if job.wright] + [time_to_pass])
		time_to_pass -= time_step
		print time_step
		print [job.TimeCost for job in user.jobs if job.wright]

		for wright in user.wrights:
			if wright.currentJob:
				wright.currentJob.TimeCost -= time_step
				if wright.currentJob.TimeCost == 0:
					wright.currentJob = None
					job_completed = True
		sess.commit()
		if time_to_pass <= 0 and not job_completed:
			break
	session["next_tab"] = 0
	return redirect(url_for("calc"))
Esempio n. 15
0
def del_wright():
	sess = DbSession().get_session()
	wright = sess.query(Wright).filter(Wright.Id == request.form["id"]).first()
	sess.delete(wright)
	sess.commit()
	return jsonify({"status":1})
Esempio n. 16
0
#!/usr/bin/pythonCoreAuthenticator
from sqlalchemy import Column, Integer, String, Text
from sqlalchemy.ext.declarative import declarative_base
from CoreAuth import AbstractUser
from DbSession import DbSession
#import math
#from sqlalchemy.orm import relationship

Base = declarative_base()

class User(Base, AbstractUser):
	__tablename__ = "User"
	Id = Column(Integer, primary_key=True)
	Username = Column(String(32), index=True)
	Password = Column(Text)
	Timestamp = Column(Integer)

	def get_username(self):
		return self.Username

	def get_password(self):
		return self.Password

	def get_timestamp(self):
		return self.Timestamp

if __name__ == "__main__":
	sess = DbSession()
	sess.build_tables(Base)