Skip to content

Commit 5455d11

Browse files
committed
env(reqs): Update with latest packages
- Flask-Security - Marshmallow - Flask-WTF - Flask3
1 parent 044cc7a commit 5455d11

7 files changed

Lines changed: 59 additions & 145 deletions

File tree

arcsi/api/show.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from flask import current_app as app
66
from flask_security import auth_token_required, roles_required, roles_accepted
77
from marshmallow import fields, post_load, Schema
8-
from marshmallow.validate import Length
8+
from marshmallow.validate import Length, Range
99
from sqlalchemy import func
1010

1111
from . import arcsi
@@ -35,7 +35,7 @@ class ShowDetailsSchema(Schema):
3535
cover_image_url = fields.Str(dump_only=True)
3636
language = fields.Str(validate=Length(min=5))
3737
playlist_name = fields.Str()
38-
frequency = fields.Int(validate=Length(equal=1))
38+
frequency = fields.Int(validate=Range(max=31, min=0))
3939
contact_address = fields.Email()
4040
week = fields.Int()
4141
day = fields.Int()

arcsi/api/tag.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from flask import make_response
22
from flask_security import auth_token_required
33
from marshmallow import fields, post_load, Schema
4-
from marshmallow.validate import Length
54

65
from arcsi.handler.upload import DoArchive
76
from arcsi.api import arcsi
@@ -11,7 +10,8 @@
1110

1211
class TagDetailsSchema(Schema):
1312
id = fields.Int()
14-
display_name = fields.Str(required=True, validate=Length(min=3))
13+
# TODO Display name must have min length of 3 chars validated. Right now, error with sending empty tag prevents that
14+
display_name = fields.Str(required=True)
1515
clean_name = fields.Str(dump_only=True)
1616
icon = fields.Str(dump_only=True)
1717
items = fields.Nested(

arcsi/api/user.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from flask import jsonify, make_response, request
22
from flask_security import roles_required
3-
from flask_security.utils import verify_password
43
from marshmallow import fields, post_load, Schema
54

65
from arcsi.api import arcsi
@@ -63,12 +62,12 @@ def get_api_token():
6362
return make_response(
6463
jsonify("Only accepts multipart/form-data for now, sorry"), 503, headers
6564
)
66-
show_metadata = request.form.to_dict()
67-
name = show_metadata["name"]
68-
password = show_metadata["password"]
65+
user_metadata = request.form.to_dict()
66+
name = user_metadata["name"]
67+
password = user_metadata["password"]
6968
user_query = User.query.filter_by(name=name)
70-
user = user_query.first_or_404()
71-
if user and verify_password(password, user.password):
69+
user = user_query.first()
70+
if user and user.verify_and_update_password(password):
7271
token = user.get_auth_token()
7372
ret = {"api_token": token}
7473
return make_response(jsonify(ret), 200, headers)

arcsi/model/user.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
class User(db.Model, UserMixin):
88
__tablename__ = "users"
99
id = db.Column(db.Integer, primary_key=True)
10-
fs_uniquifier = db.Column(db.String(64), nullable=False)
10+
fs_uniquifier = db.Column(db.String(64), unique=True, nullable=False)
1111
name = db.Column(db.String(), unique=True)
1212
email = db.Column(db.String(), unique=True, nullable=False)
1313
password = db.Column(db.String(128), nullable=False)
@@ -23,7 +23,6 @@ class User(db.Model, UserMixin):
2323
# TODO will this work ?
2424
cascade_backrefs=False,
2525
)
26-
fs_uniquifier = db.Column(db.String(64), unique=True, nullable=True)
2726

2827
def __repr__(self):
2928
return "<Host {}>".format(self.name)

migrations/versions/3706280441e5_populate_users_fs_uniquifier.py

Lines changed: 0 additions & 48 deletions
This file was deleted.

migrations/versions/6fa7d5c511aa_add_column_fs_uniquifier_to_rel_users.py

Lines changed: 0 additions & 37 deletions
This file was deleted.

requirements.txt

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,49 @@
1-
alembic<=2
2-
3-
blinker==1.9.0 # from Flask-Mail
4-
boto3<=2
5-
botocore<=2
6-
7-
8-
9-
Click==8.2.1 # from Flask
10-
11-
12-
Flask<=4.0.0
13-
14-
Flask-CKEditor>=1.0.0
15-
Flask-Login>=0.6.2
16-
17-
Flask-Migrate>=2.5.2
18-
19-
Flask-Security>=4.1.6
20-
Flask-SQLAlchemy>=3.1.1
21-
Flask-Swagger-UI>=3.25.0
22-
23-
24-
gunicorn==20.0.4
25-
26-
27-
28-
29-
30-
31-
marshmallow>=3.6.0
32-
mutagen==1.44.0
33-
34-
35-
psycopg2
36-
37-
38-
python-slugify>=4.0.1
39-
pytz
40-
requests>=2.31.0
41-
42-
six>=1.17.0 # from python-dateutil
43-
44-
SQLAlchemy>=1.5.0
45-
46-
47-
Werkzeug>=2.2.3
48-
WTForms>=2.3.1
1+
alembic==1.17.2
2+
argon2-cffi==25.1.0
3+
argon2-cffi-bindings==25.1.0
4+
bcrypt==5.0.0
5+
blinker==1.9.0
6+
boto3==1.42.21
7+
botocore==1.42.21
8+
certifi==2025.11.12
9+
cffi==2.0.0
10+
charset-normalizer==3.4.4
11+
click==8.3.1
12+
dnspython==2.8.0
13+
email-validator==2.3.0
14+
Flask==3.1.2
15+
Flask-CKEditor==1.0.0
16+
Flask-Login==0.6.3
17+
Flask-Mail==0.10.0
18+
Flask-Migrate==4.1.0
19+
Flask-Principal==0.4.0
20+
Flask-Security==5.7.1
21+
Flask-SQLAlchemy==3.1.1
22+
flask-swagger-ui==5.21.0
23+
Flask-WTF==1.2.2
24+
greenlet==3.3.0
25+
gunicorn==23.0.0
26+
idna==3.11
27+
itsdangerous==2.2.0
28+
Jinja2==3.1.6
29+
jmespath==1.0.1
30+
libpass==1.9.3
31+
Mako==1.3.10
32+
MarkupSafe==3.0.3
33+
marshmallow==4.1.2
34+
mutagen==1.47.0
35+
packaging==25.0
36+
psycopg2==2.9.11
37+
pycparser==2.23
38+
python-dateutil==2.9.0.post0
39+
python-slugify==8.0.4
40+
pytz==2025.2
41+
requests==2.32.5
42+
s3transfer==0.16.0
43+
six==1.17.0
44+
SQLAlchemy==2.0.45
45+
text-unidecode==1.3
46+
typing_extensions==4.15.0
47+
urllib3==2.6.2
48+
Werkzeug==3.1.4
49+
WTForms==3.2.1

0 commit comments

Comments
 (0)