def update(self, view: InertiaResponse, validate: Validator): org = Organization.find(self.request.param("organization")) # TODO: add nullable rule # TODO: add postal_code rule errors = self.request.validate( validate.required(['name']), validate.length(['email', 'phone', 'city', 'region'], max=50), validate.length(['name'], min=2), ) if errors: return self.request.redirect_to("organizations.edit", { "organization": org.id }).with_errors(errors).with_input() # TODO: how to update more quickly/cleanly ? org.name = self.request.input('name') org.email = self.request.input('email') org.phone = self.request.input('phone') org.address = self.request.input('address') org.city = self.request.input('city') org.region = self.request.input('region') org.postal_code = self.request.input('postal_code') org.country = self.request.input('country') org.save() self.request.session.flash('success', 'Organization updated.') return self.request.back()
def update(self, request: Request, validate: Validator): errors = request.validate( validate.required("password"), validate.confirmed("password"), validate.length( "password", min=config("auth.password_min_length"), max=config("auth.password_max_length"), ), ) if errors: request.session.flash("error", errors) return request.back() user = AUTH["model"].where("remember_token", request.param("token")).first() if user: user.password = bcrypt_password(request.input("password")) user.remember_token = None user.save() if request.user(): auth.sign_out() request.session.flash( "success", "Your password has been reset. Login below.") return request.redirect("/users/sign-in")
def store(self, view: InertiaResponse, validate: Validator): # TODO: add nullable rule # TODO: add postal_code rule errors = self.request.validate( validate.required(['name']), validate.length(['email', 'phone', 'city', 'region'], max=50), validate.length(['name'], min=2), # validate.length('address', max=150), # validate.length('country', max=2), # validate.length('postal_code', max=25), # validate.email('email'), # 'name': 'required|length:2,100', # 'email': 'length:3,50|email', # 'phone': 'length:3,50', # 'address': 'length:3,150', # 'city': 'length:3,50', # 'region': 'length:3,50', # 'country': 'length:0,2', # 'postal_code': 'length:2,25' ) if errors: # return self.request.back().with_errors(errors).with_input() # return view.render('Organizations/Create').with_errors(errors).with_input() return self.request.redirect_to( 'organizations.create').with_errors(errors).with_input() Organization.create(name=self.request.input('name'), email=self.request.input('email'), phone=self.request.input('phone'), address=self.request.input('address'), city=self.request.input('city'), region=self.request.input('region'), postal_code=self.request.input('postal_code'), country=self.request.input('country'), account_id=self.request.user().account.id) self.request.session.flash('success', 'Organization created.') return self.request.redirect_to('organizations')
def store( self, request: Request, mail_manager: MailManager, auth: Auth, validate: Validator, ): errors = request.validate( validate.required(["name", "email", "password"]), validate.email("email"), validate.not_in_database( "email", table="users", column="email", messages={"email": "This email address is already registered"}, ), validate.confirmed("password"), validate.length( "password", min=config("auth.password_min_length"), max=config("auth.password_max_length"), ), ) if errors: return return_with_errors(errors) auth.register({ "name": request.input("name"), "password": request.input("password"), "email": request.input("email"), }) user = User.where("email", request.input("email")).first() if isinstance(user, MustVerifyEmail): user.verify_email(mail_manager, request) # Login the user if auth.login(user.email, request.input("password")): request.session.flash( "success", "Your account has been successfully created. Check your email to verify your email address.", ) return request.redirect("/")
def update(self, view: InertiaResponse, validate: Validator, upload: Upload): user = User.find(self.request.param("user")) if user.is_demo_user: self.request.session.flash( 'error', 'Updating the demo user is not allowed.') return self.request.redirect( f"/users/{user.id}/edit" ) #.with_errors("Updating the demo user is not allowed.") errors = self.request.validate( validate.required(['first_name', 'last_name', 'email', 'owner']), validate.length(['first_name', 'last_name', 'email'], max=50), validate.email('email'), validate.when(validate.exists('password')).then( validate.strong('password', length=8, special=1)) # TODO: add unique ) if errors: return self.request.redirect(f"users/{user.id}").with_errors( errors).with_input() # update user user.first_name = self.request.input('first_name') user.last_name = self.request.input('last_name') user.email = self.request.input('email') user.owner = self.request.input('owner') if self.request.input('password'): pass photo_path = None if self.request.input('photo'): photo_path = upload.driver('disk').store( self.request.input('file_upload'), location='disk.profiles') user.photo_path = photo_path user.save() self.request.session.flash('success', 'User updated.') return self.request.back()
def store(self, view: InertiaResponse, validate: Validator, upload: Upload): errors = self.request.validate( validate.required(['email', 'first_name', 'last_name', 'owner']), validate.truthy('owner'), validate.length(['first_name', 'last_name', 'email'], max=50), validate.email('email'), # validate.when( # validate.exists('photo') # ).then( # validate.image('photo') # ), TODO: fix the error, file validators do not work with FieldStorage for now ... validate.when(validate.exists('password')).then( validate.strong('password', length=8, special=1))) if errors: # return self.request.back().with_errors(errors).with_input() # return view.render('Users/Create').with_errors(errors).with_input() return self.request.redirect('users/create').with_errors( errors).with_input() photo_path = None if self.request.input('photo'): # save file photo_path = upload.driver('disk').store( self.request.input('file_upload'), location='disk.profiles') self.request.user().account.users().create( first_name=self.request.input('first_name'), last_name=self.request.input('last_name'), email=self.request.input('email'), owner=self.request.input('owner'), password=self.request.input('password'), photo_path=photo_path) self.request.session.flash('success', 'User created.') return self.request.redirect('/users')