def account_settings(self): self.meta_(title="Account Settings") if request.method == "POST": action = request.form.get("action") try: action = action.lower() # if action == "info": first_name = request.form.get("first_name").strip() last_name = request.form.get("last_name", "").strip() data = {"first_name": first_name, "last_name": last_name} current_user.update(**data) flash_success("Account info updated successfully!") # elif action == "login": confirm_password = request.form.get("confirm-password").strip() if current_user.password_matched(confirm_password): self.change_login_handler() flash_success("Login Info updated successfully!") else: flash_error("Invalid password") # elif action == "password": confirm_password = request.form.get("confirm-password").strip() if current_user.password_matched(confirm_password): self.change_password_handler() flash_success("Password updated successfully!") else: flash_error("Invalid password") elif action == "profile-photo": file = request.files.get("file") if file: prefix = "profile-photos/%s/" % current_user.id extensions = ["jpg", "jpeg", "png", "gif"] my_photo = storage.upload(file, prefix=prefix, allowed_extensions=extensions) if my_photo: url = my_photo.url current_user.update(profile_image_url=url) flash_success("Profile Image updated successfully!") else: raise ViewError("Invalid action") except Exception as e: flash_error(e.message) return redirect(url_for("UserAccount:account_settings")) return self.render_(view_template_=template_page % "account_settings")
def cms_admin_upload_image(self): """ Placeholder for markdown """ try: ajax = request.form.get("ajax", False) allowed_extensions = ["gif", "png", "jpg", "jpeg"] if request.files.get("file"): _file = request.files.get('file') obj = storage.upload(_file, prefix="cms-uploads/", allowed_extensions=allowed_extensions, public=True) if obj: description = os.path.basename(obj.name) description = description.replace(".%s" % obj.extension, "") description = description.split("__")[0] upload_object = PostModel.UploadObject.create(name=obj.name, provider=obj.provider_name, container=obj.container.name, extension=obj.extension, type=obj.type, object_path=obj.path, object_url=obj.url, size=obj.size, description=description) if ajax: return jsonify({ "id": upload_object.id, "url": upload_object.object_url }) else: flash_success("Image '%s' uploaded successfully!" % upload_object.name) else: flash_error("Error: Upload object file is invalid or doesn't exist") except Exception as e: flash_error("Error: %s" % e.message) return redirect(url_for("CmsAdmin:images"))
def upload(self): self.meta_(title="Upload Demo") if request.method == "POST": try: _file = request.files.get('file') if _file: my_object = storage.upload(_file, prefix="demo/", public=True, allowed_extensions=["gif", "jpg", "jpeg", "png"]) if my_object: return redirect(url_for("Account:upload", object_name=my_object.name)) except Exception as e: flash_error(e.message) return redirect(url_for("Account:upload")) my_object = None object_name = request.args.get("object_name") if object_name: my_object = storage.get(object_name=object_name) return dict(my_object=my_object)