def delete_user(self, request): username = utils.get_reqvar(request, "username") userkey = 'user_' + username if userkey not in self.tyrant: return errors.json_error_page(request, errors.USER_DOES_NOT_EXIST) del self.tyrant[userkey] return json_response(request, 0, "OK")
def change_user_password(self, request): username = utils.get_reqvar(request, "username") newpassword = utils.get_reqvar(request, "newpassword") userkey = get_user_key(username) if userkey not in self.tyrant: return errors.json_error_page(request, errors.USER_DOES_NOT_EXIST) if not is_password_valid(newpassword): return errors.json_error_page(request, errors.PASSWORD_INVALID) userdata = json_decode(self.tyrant[userkey]) userdata['pwdreset'] = False userdata['password'] = newpassword self.tyrant[userkey] = json_encode(userdata) return json_response(request, 0, "OK")
def create_new_user(self, request): username = utils.get_reqvar(request, "username") password = utils.get_reqvar(request, "password") userkey = get_user_key(username) if userkey in self.tyrant: return errors.json_error_page(request, errors.USER_ALREADY_EXISTS) if not is_password_valid(password): return errors.json_error_page(request, errors.PASSWORD_INVALID) self.tyrant[userkey] = json_encode({'username': username, 'pwdreset': False, 'password': password, 'created': datetime.datetime.now()}) return json_response(request, 0, "OK")
def create_new_user(self, request): username = utils.get_reqvar(request, "username") password = utils.get_reqvar(request, "password") userkey = get_user_key(username) if userkey in self.tyrant: return errors.json_error_page(request, errors.USER_ALREADY_EXISTS) if not is_password_valid(password): return errors.json_error_page(request, errors.PASSWORD_INVALID) self.tyrant[userkey] = json_encode({ 'username': username, 'pwdreset': False, 'password': password, 'created': datetime.datetime.now() }) return json_response(request, 0, "OK")
def render(self, request): """ We handle GET or POST requests to this handler. This will be of the form: /apps/<appname>/<device_token>/?args """ parts = request.path.split("/")[2:] if len(parts) < 2: return errors.no_resource_error(request) appname = parts[0] dev_token = parts[1] username = utils.get_reqvar(request, "username") content = request.content.read() badge = utils.get_reqvar(request, "badge") sound = utils.get_reqvar(request, "sound") alert = utils.get_reqvar(request, "alert") env = utils.get_reqvar(request, "env") identifier = utils.get_reqvar(request, "identifier") expiry = utils.get_reqvar(request, "expiry") if content: payload = json_decode(content) if 'aps' not in payload: payload['aps'] = {} else: payload = {'aps': {}} if badge: payload['aps']['badge'] = int(badge) if sound: payload['aps']['sound'] = sound if alert: payload['aps']['alert'] = alert logging.debug("Payload: " + json_encode(payload)) appkey = "%s$%s$%s" % (env, username, appname) self.apns_daemon.sendMessage(appname, dev_token, json_encode(payload), identifier, expiry) return json_response(request, 0, "OK")
def render(self, request): """ We handle GET or POST requests to this handler. This will be of the form: /apps/<appname>/<device_token>/?args """ parts = request.path.split("/")[2:] if len(parts) < 2: return errors.no_resource_error(request) appname = parts[0] dev_token = parts[1] username = utils.get_reqvar(request, "username") content = request.content.read() badge = utils.get_reqvar(request, "badge") sound = utils.get_reqvar(request, "sound") alert = utils.get_reqvar(request, "alert") env = utils.get_reqvar(request, "env") identifier = utils.get_reqvar(request, "identifier") expiry = utils.get_reqvar(request, "expiry") if content: payload = json_decode(content) if "aps" not in payload: payload["aps"] = {} else: payload = {"aps": {}} if badge: payload["aps"]["badge"] = int(badge) if sound: payload["aps"]["sound"] = sound if alert: payload["aps"]["alert"] = alert logging.debug("Payload: " + json_encode(payload)) appkey = "%s$%s$%s" % (env, username, appname) self.apns_daemon.sendMessage(appname, dev_token, json_encode(payload), identifier, expiry) return json_response(request, 0, "OK")
'prod_certfile': "", 'dev_pkeypasswd': "", 'dev_certpasswd': "", 'prod_pkeypasswd': "", 'prod_certpasswd': "", 'created': datetime.datetime.now()}) # create the folder for the app so we have # certificates and other things in there # <cert_folder>/<alphabet>/<appkey>/ try: self.create_app_cert_folder(username, appname) except OSError, e: return errors.json_error_page(request, errors.OS_ERROR, str(e)) return json_response(request, 0, "OK") @decos.require_parameters("username", "appname") def delete_app(self, request): """ Deletes an app. """ username = utils.get_reqvar(request, "username") appname = utils.get_reqvar(request, "appname") appkey = get_app_key(username, appname) if appkey not in self.tyrant: return errors.json_error_page(request, errors.APP_DOES_NOT_EXIST) del self.tyrant[appkey]
'dev_pkeypasswd': "", 'dev_certpasswd': "", 'prod_pkeypasswd': "", 'prod_certpasswd': "", 'created': datetime.datetime.now() }) # create the folder for the app so we have # certificates and other things in there # <cert_folder>/<alphabet>/<appkey>/ try: self.create_app_cert_folder(username, appname) except OSError, e: return errors.json_error_page(request, errors.OS_ERROR, str(e)) return json_response(request, 0, "OK") @decos.require_parameters("username", "appname") def delete_app(self, request): """ Deletes an app. """ username = utils.get_reqvar(request, "username") appname = utils.get_reqvar(request, "appname") appkey = get_app_key(username, appname) if appkey not in self.tyrant: return errors.json_error_page(request, errors.APP_DOES_NOT_EXIST) del self.tyrant[appkey]
def json_error_page(request, error_code, result = None, status = 200): if not result: result = ERROR_STRINGS[-error_code] return json.json_response(request, error_code, result, status)