diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/blueprints/api/tokens.py | 4 | ||||
-rw-r--r-- | app/models.py | 11 | ||||
-rw-r--r-- | app/templates/api/create_edit_token.html | 1 |
3 files changed, 15 insertions, 1 deletions
diff --git a/app/blueprints/api/tokens.py b/app/blueprints/api/tokens.py index fcc22bb..b8da78d 100644 --- a/app/blueprints/api/tokens.py +++ b/app/blueprints/api/tokens.py @@ -29,6 +29,8 @@ from wtforms.ext.sqlalchemy.fields import QuerySelectField class CreateAPIToken(FlaskForm): name = StringField("Name", [InputRequired(), Length(1, 30)]) + package = QuerySelectField("Limit to package", allow_blank=True, \ + get_pk=lambda a: a.id, get_label=lambda a: a.title) submit = SubmitField("Save") @@ -70,6 +72,8 @@ def create_edit_token(username, id=None): access_token = session.pop("token_" + str(id), None) form = CreateAPIToken(formdata=request.form, obj=token) + form.package.query_factory = lambda: Package.query.filter_by(author=user).all() + if request.method == "POST" and form.validate(): if is_new: token = APIToken() diff --git a/app/models.py b/app/models.py index 2e37758..1849075 100644 --- a/app/models.py +++ b/app/models.py @@ -864,12 +864,21 @@ class PackageScreenshot(db.Model): class APIToken(db.Model): id = db.Column(db.Integer, primary_key=True) access_token = db.Column(db.String(34), unique=True) + name = db.Column(db.String(100), nullable=False) owner_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) + # owner is created using backref + created_at = db.Column(db.DateTime, nullable=False, default=datetime.datetime.utcnow) + package_id = db.Column(db.Integer, db.ForeignKey("package.id"), nullable=True) + package = db.relationship("Package", foreign_keys=[package_id]) + def canOperateOnPackage(self, package): - return packages.count() == 0 or package in packages + if self.package and self.package != None: + return False + + return package.owner == self.owner class EditRequest(db.Model): diff --git a/app/templates/api/create_edit_token.html b/app/templates/api/create_edit_token.html index 582cb94..c56a097 100644 --- a/app/templates/api/create_edit_token.html +++ b/app/templates/api/create_edit_token.html @@ -47,6 +47,7 @@ {{ form.hidden_tag() }} {{ render_field(form.name, placeholder="Human readable") }} + {{ render_field(form.package) }} {{ render_submit_field(form.submit) }} </form> |