def post(self): if not self.global_modes['allow_registration']: self.see_other('home', error='Registration is currently disabled.') return try: with AccountSaver(rqh=self) as saver: email = self.get_argument('email', None) saver['first_name'] = self.get_argument('first_name', None) saver['last_name'] = self.get_argument('last_name', None) university = self.get_argument('university', None) if not university: university = self.get_argument('university_other', None) saver['university'] = university saver['department'] = self.get_argument('department', None) saver['pi'] = utils.to_bool(self.get_argument('pi', False)) gender = self.get_argument('gender', None) if gender: saver['gender'] = gender.lower() group_size = self.get_argument('group_size', None) if group_size: saver['group_size'] = group_size try: saver['subject'] = int(self.get_argument('subject')) except (tornado.web.MissingArgumentError, ValueError, TypeError): saver['subject'] = None saver['address'] = dict( address=self.get_argument('address', None), zip=self.get_argument('zip', None), city=self.get_argument('city', None), country=self.get_argument('country', None)) saver['invoice_ref'] = self.get_argument('invoice_ref', None) saver['invoice_address'] = dict( address=self.get_argument('invoice_address', None), zip=self.get_argument('invoice_zip', None), city=self.get_argument('invoice_city', None), country=self.get_argument('invoice_country', None)) saver['phone'] = self.get_argument('phone', None) if not email: raise ValueError('Email is required.') saver.set_email(email) saver['owner'] = saver['email'] saver['role'] = constants.USER saver['status'] = constants.PENDING saver.check_required() saver.erase_password() except ValueError, msg: kwargs = OD() for key in self.KEYS: kwargs[key] = saver.get(key) or '' for key in self.ADDRESS_KEYS: kwargs[key] = saver.get('address', {}).get(key) or '' for key in self.ADDRESS_KEYS: kwargs['invoice_' + key] = saver.get('invoice_address', {}).\ get(key) or '' self.see_other('register', error=str(msg), **kwargs) return
def post(self): if not self.global_modes['allow_registration']: self.see_other('home', error='Registration is currently disabled.') return try: with AccountSaver(rqh=self) as saver: email = self.get_argument('email', None) saver['first_name'] = self.get_argument('first_name', None) saver['last_name'] = self.get_argument('last_name', None) university = self.get_argument('university', None) if not university: university = self.get_argument('university_other', None) saver['university'] = university saver['department'] = self.get_argument('department', None) saver['pi'] = utils.to_bool(self.get_argument('pi', False)) gender = self.get_argument('gender', None) if gender: saver['gender'] = gender.lower() group_size = self.get_argument('group_size', None) if group_size: saver['group_size'] = group_size try: saver['subject'] = int(self.get_argument('subject')) except (tornado.web.MissingArgumentError,ValueError,TypeError): saver['subject'] = None saver['address'] = dict( address=self.get_argument('address', None), zip=self.get_argument('zip', None), city=self.get_argument('city', None), country=self.get_argument('country', None)) saver['invoice_ref'] = self.get_argument('invoice_ref', None) saver['invoice_address'] = dict( address=self.get_argument('invoice_address', None), zip=self.get_argument('invoice_zip', None), city=self.get_argument('invoice_city', None), country=self.get_argument('invoice_country', None)) saver['phone'] = self.get_argument('phone', None) if not email: raise ValueError('Email is required.') saver.set_email(email) saver['owner'] = saver['email'] saver['role'] = constants.USER saver['status'] = constants.PENDING saver.check_required() saver.erase_password() except ValueError, msg: kwargs = OD() for key in self.KEYS: kwargs[key] = saver.get(key) or '' for key in self.ADDRESS_KEYS: kwargs[key] = saver.get('address', {}).get(key) or '' for key in self.ADDRESS_KEYS: kwargs['invoice_' + key] = saver.get('invoice_address', {}).\ get(key) or '' self.see_other('register', error=str(msg), **kwargs) return
def post(self): self.check_admin() try: mode = self.get_argument('mode') if mode not in self.global_modes: raise ValueError self.global_modes[mode] = utils.to_bool(self.get_argument('value')) except (tornado.web.MissingArgumentError, ValueError, TypeError): pass else: # Create global_modes meta document if it does not exist. if '_id' not in self.global_modes: self.global_modes['_id'] = 'global_modes' self.global_modes[constants.DOCTYPE] = constants.META self.db.save(self.global_modes) self.see_other('global_modes')
def post(self, name): self.check_admin() if self.get_argument('_http_method', None) == 'delete': self.delete(name) return file = self.get_entity_view('file/name', name) with FileSaver(doc=file, rqh=self) as saver: try: infile = self.request.files['file'][0] except (KeyError, IndexError): # No new file upload, just leave it alone. saver.file = None else: saver.set_file(infile) saver['title'] = self.get_argument('title', None) saver['hidden'] = utils.to_bool(self.get_argument('hidden', False)) saver['description'] = self.get_argument('description', None) self.see_other('files')
def post(self): self.check_admin() try: with FileSaver(rqh=self) as saver: try: infile = self.request.files['file'][0] except (KeyError, IndexError): raise ValueError('No file uploaded.') name = self.get_argument('name', None) or \ os.path.splitext(infile.filename)[0] saver.check_name(name) saver.set_file(infile, name) saver['title'] = self.get_argument('title', None) saver['hidden'] = utils.to_bool(self.get_argument('hidden', False)) saver['description'] = self.get_argument('description', None) except ValueError, msg: self.see_other('files', error=str(msg))
def post(self): self.check_admin() try: with FileSaver(rqh=self) as saver: try: infile = self.request.files['file'][0] except (KeyError, IndexError): raise ValueError('No file uploaded.') name = self.get_argument('name', None) or \ os.path.splitext(infile.filename)[0] saver.check_name(name) saver.set_file(infile, name) saver['title'] = self.get_argument('title', None) saver['hidden'] = utils.to_bool( self.get_argument('hidden', False)) saver['description'] = self.get_argument('description', None) except ValueError, msg: self.see_other('files', error=str(msg))
try: with AccountSaver(doc=account, rqh=self) as saver: # Only admin may change role of an account. if self.is_admin(): role = self.get_argument('role') if role not in constants.ACCOUNT_ROLES: raise ValueError('Invalid role.') saver['role'] = role saver['first_name'] = self.get_argument('first_name') saver['last_name'] = self.get_argument('last_name') university = self.get_argument('university', None) if not university: university = self.get_argument('university_other', None) saver['university'] = university saver['department'] = self.get_argument('department', None) saver['pi'] = utils.to_bool(self.get_argument('pi', False)) try: saver['gender'] = self.get_argument('gender').lower() except tornado.web.MissingArgumentError: try: del saver['gender'] except KeyError: pass try: saver['group_size'] = self.get_argument('group_size') except tornado.web.MissingArgumentError: try: del saver['group_size'] except KeyError: pass try:
def post(self, email): try: account = self.get_account(email) self.check_editable(account) except ValueError as msg: self.see_other('account_edit', account['email'], error=str(msg)) return try: with AccountSaver(doc=account, rqh=self) as saver: # Only admin may change role of an account. if self.is_admin(): role = self.get_argument('role') if role not in constants.ACCOUNT_ROLES: raise ValueError('Invalid role.') saver['role'] = role saver['first_name'] = self.get_argument('first_name') saver['last_name'] = self.get_argument('last_name') university = self.get_argument('university', None) if not university: university = self.get_argument('university_other', None) saver['university'] = university saver['department'] = self.get_argument('department', None) saver['pi'] = utils.to_bool(self.get_argument('pi', False)) try: saver['gender'] = self.get_argument('gender').lower() except tornado.web.MissingArgumentError: try: del saver['gender'] except KeyError: pass try: saver['group_size'] = self.get_argument('group_size') except tornado.web.MissingArgumentError: try: del saver['group_size'] except KeyError: pass try: saver['subject'] = int(self.get_argument('subject')) except (tornado.web.MissingArgumentError, ValueError, TypeError): saver['subject'] = None saver['address'] = dict( address=self.get_argument('address', None), zip=self.get_argument('zip', None), city=self.get_argument('city', None), country=self.get_argument('country', None)) saver['invoice_ref'] = self.get_argument('invoice_ref', None) saver['invoice_address'] = dict( address=self.get_argument('invoice_address', None), zip=self.get_argument('invoice_zip', None), city=self.get_argument('invoice_city', None), country=self.get_argument('invoice_country', None)) saver['phone'] = self.get_argument('phone', None) saver['other_data'] = self.get_argument('other_data', None) if utils.to_bool(self.get_argument('api_key', False)): saver['api_key'] = utils.get_iuid() saver['update_info'] = False saver.check_required() except ValueError as msg: self.see_other('account_edit', account['email'], error=str(msg)) else: self.see_other('account', account['email'])
texts = yaml.safe_load(infile) except IOError: print('Warning: could not load', filepath) texts = dict() else: texts = dict() for name in constants.TEXTS: if len(list(db.view('text/name', key=name))) == 0: with admin.TextSaver(db=db) as saver: saver['name'] = name saver['text'] = texts.get(name, '') def wipeout_database(db): """Wipe out the contents of the database. This is used rather than total delete of the database instance, since that may require additional privileges, depending on the setup. """ for doc in db: del db[doc] if __name__ == '__main__': (options, args) = get_args() if not options.force: response = raw_input('about to delete everything; really sure? [n] > ') if not utils.to_bool(response): sys.exit('aborted') utils.load_settings(filepath=options.settings) init_database(dumpfilepath=options.FILE)