def register(self, password,email): session = EVCstate(trust=True) charname = None if 'Eve-Charname' in dict(cherrypy.request.headers): charname = cherrypy.request.headers['Eve-Charname'] if charname is None: return evec_func.simple_error("No username found?") if password == "": return evec_func.simple_error("Please specify a password") if '@' not in email: return evec_func.simple_error("Please specify a semi-valid email address") db = evec_func.db_con() password = password.strip() r = User.register(db, password,email) if r is False: db.close() return evec_func.simple_error("Error: Registration error. You may already be registered or the system messed up") User.login(db, session, charname, password) emit_redirect('/users/') return """<html><head><title>Hi</title></head><body>
def view_page(self, ticker, page="index", retry = True): session = EVCstate(trust=True) db = evec_func.db_con() user = User.get(session, db) corp = None if user.valid: corp = Corp(db, user.corpid) cur = db.cursor() cur.execute("SELECT corps.corpid,contents,title,view,edit FROM corppages,corps WHERE corppages.corpid = corps.corpid AND corps.ticker = %s AND corppages.pagename = %s", [ticker,page]) r = cur.fetchone() if r: view = r[3] page_corp = Corp(db, long(r[0])) t = display.template('corpviewpage.tmpl', session) t.canedit = False print view if user.valid: if view == "corp only" and not long(r[0]) == corp.corpid and not user.ismember: return evec_func.simple_error("You are not authorized to view this page") if view == "director only" and not long(r[0]) == corp.corpid and not user.isdirector: return evec_func.simple_error("You are not authorized to view this page") t.canedit = user.isdirector and long(r[0]) == corp.corpid else: if view != "public": return evec_func.simple_error("You are not authorized to view this page.") t.pcontents = r[1] t.ptitle = r[2] t.view = r[3] t.pagename = page t.pedit = r[4] t.corp = page_corp db.close() return t.respond() else: if retry: return self.view_page(ticker, page[:-5], retry = False) db.close() return evec_func.simple_error("No such page: " + ticker + " page " + page)
def advertise(self): session = EVCstate(self, trust=True) db = evec_func.db_con() user = User.get(session, db) if not user.valid: return evec_func.simple_error("Not logged in") if not user.isdirector: return evec_func.simple_error("Not enough priveleges") ucorp = Corp(db,user.corpid) t = display.template('corpmanage.tmpl', session) t.corp = ucorp return t.respond()
def register(self): session = EVCstate(trust=True) db = evec_func.db_con() user = User.get(session, db) if user.valid is False: db.close() return evec_func.simple_error("Not logged in") if user.isdirector != 1: db.close() return evec_func.simple_error("Not director - only directors can do that") r = Corp.create(db, user.corpid, user.corporation) if r is False: db.close() return evec_func.simple_error("Corp exists") emit_redirect('/corps/') db.close()
def manage(self, set = 0, description = "", join_password = "", headquarters = "", ticker = ""): session = EVCstate(trust=True) db = evec_func.db_con() user = User.get(session, db) if not user.valid: return evec_func.simple_error("Not logged in") if not user.isdirector: return evec_func.simple_error("Not enough priveleges") ucorp = Corp(db,user.corpid) if set: ucorp.description = description ucorp.headquarters = headquarters ucorp.join_password = join_password ucorp.ticker = ticker ucorp.update(db) t = display.template('corpmanage.tmpl', session) t.corp = ucorp return t.respond()
def changepw(self, oldpw, newpw, newpw2): session = EVCstate(trust=True) db = evec_func.db_con() if newpw != newpw2: return evec_func.simple_error("Passwords do not match") u = User.get(session, db) u.change_pw(db, oldpw,newpw) emit_redirect('/users/') db.close()
def edit_page(self, page, delete=None, create = None, set=None, contents = "", title = "", view = "public"): session = EVCstate(trust=True) db = evec_func.db_con() user = User.get(session, db) if not user.isdirector: return corp = Corp(db, user.corpid) cur = db.cursor() if delete and page != "index": cur.execute("DELETE FROM corppages WHERE pagename = %s AND corpid = %s AND pagename != 'index'", [page, user.corpid]) db.commit() page = 'index' if create and page: found = False try: page.index('.') found = True except: pass try: page.index('/') found = True except: pass try: page.index(' ') found = True except: pass if found: return evec_func.simple_error( "Invalid page name. No ., /, spaces") cur.execute("INSERT INTO corppages (pagename, corpid, title, contents, view) VALUES (%s, %s, 'New page', 'Type stuff here', 'public')", [page, user.corpid]) db.commit() if set: cur.execute("UPDATE corppages SET contents = %s, title = %s, view = %s, edit = NOW() WHERE pagename = %s AND corpid = %s", [contents, title, view, page, user.corpid]) db.commit() cur.execute("SELECT contents,title,view,edit FROM corppages WHERE corppages.corpid = %s AND corppages.pagename = %s", [corp.corpid,page]) r = cur.fetchone() if r: t = display.template('corpeditpage.tmpl', session) t.pcontents = r[0] t.ptitle = r[1] t.view = r[2] t.pagename = page t.pedit = r[3] t.corp = corp pages = [] cur.execute("SELECT pagename FROM corppages WHERE corpid = %s", [user.corpid]) r = cur.fetchone() while r: pages.append(r[0]) r = cur.fetchone() t.pages = pages db.close() return t.respond()