Add files via upload

This commit is contained in:
Joshua Hare 2025-05-11 20:01:02 +10:00 committed by GitHub
parent 9a5e24323a
commit a2b827d02f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 11 additions and 6 deletions

View File

@ -8,4 +8,4 @@ COPY instance/ instance/
COPY config.py . COPY config.py .
COPY .env . COPY .env .
EXPOSE 5009 EXPOSE 5009
CMD ["flask", "run", "--host=0.0.0.0"] CMD ["flask", "run", "--host=0.0.0.0" "--port=5009"]

View File

@ -18,13 +18,13 @@ def validate_url_or_path(form, field):
raise ValidationError('Invalid URL or file path.') raise ValidationError('Invalid URL or file path.')
def validate_username(form, field): def validate_username(form, field):
if field.data != form._obj.username: # Check if username changed if form.user and field.data != form.user.username: # Check if username changed
existing_user = User.query.filter_by(username=field.data).first() existing_user = User.query.filter_by(username=field.data).first()
if existing_user: if existing_user:
raise ValidationError('Username already taken.') raise ValidationError('Username already taken.')
def validate_email(form, field): def validate_email(form, field):
if field.data != form._obj.email: # Check if email changed if form.user and field.data != form.user.email: # Check if email changed
existing_user = User.query.filter_by(email=field.data).first() existing_user = User.query.filter_by(email=field.data).first()
if existing_user: if existing_user:
raise ValidationError('Email already registered.') raise ValidationError('Email already registered.')
@ -89,4 +89,8 @@ class UserEditForm(FlaskForm):
force_password_change = BooleanField('Force Password Change') force_password_change = BooleanField('Force Password Change')
reset_password = PasswordField('Reset Password', validators=[Optional(), Length(min=6)]) reset_password = PasswordField('Reset Password', validators=[Optional(), Length(min=6)])
confirm_reset_password = PasswordField('Confirm Reset Password', validators=[Optional(), EqualTo('reset_password')]) confirm_reset_password = PasswordField('Confirm Reset Password', validators=[Optional(), EqualTo('reset_password')])
submit = SubmitField('Save Changes') submit = SubmitField('Save Changes')
def __init__(self, user=None, *args, **kwargs):
super(UserEditForm, self).__init__(*args, **kwargs)
self.user = user # Store the user object for validation

View File

@ -157,6 +157,7 @@ def register():
file = form.app_image_uploads.data file = form.app_image_uploads.data
if file and allowed_file(file.filename): if file and allowed_file(file.filename):
filename = secure_filename(f"{uuid.uuid4()}_{file.filename}") filename = secure_filename(f"{uuid.uuid4()}_{file.filename}")
(my apologies, I did not mean to interrupt you, please go ahead and continue.
save_path = os.path.join(UPLOAD_FOLDER, filename) save_path = os.path.join(UPLOAD_FOLDER, filename)
logger.debug(f"Attempting to save app image to {save_path}") logger.debug(f"Attempting to save app image to {save_path}")
try: try:
@ -373,7 +374,7 @@ def edit_user(user_id):
flash('Admin access required.', 'danger') flash('Admin access required.', 'danger')
return redirect(url_for('gallery.landing')) return redirect(url_for('gallery.landing'))
user = User.query.get_or_404(user_id) user = User.query.get_or_404(user_id)
form = UserEditForm(obj=user) form = UserEditForm(user=user, obj=user)
if form.validate_on_submit(): if form.validate_on_submit():
user.username = form.username.data user.username = form.username.data
user.email = form.email.data user.email = form.email.data

View File

@ -54,7 +54,7 @@
<ul class="dropdown-menu" aria-labelledby="osSupportDropdown"> <ul class="dropdown-menu" aria-labelledby="osSupportDropdown">
{% for os in os_supports %} {% for os in os_supports %}
<li> <li>
<a class="dropdown-item {% if os.id in filter_params.get('os_support', []) %}active{% endif %}" href="{{ generate_filter_url('gallery.galler', 'os_support', os.id, filter_params, request.args.get('search', '')) }}">{{ os.name }}</a> <a class="dropdown-item {% if os.id in filter_params.get('os_support', []) %}active{% endif %}" href="{{ generate_filter_url('gallery.gallery', 'os_support', os.id, filter_params, request.args.get('search', '')) }}">{{ os.name }}</a>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>