Redirect to correct URL when _game is missing from package name

This commit is contained in:
rubenwardy 2020-08-02 18:03:44 +01:00
parent 9a64809542
commit d69da8e3ea
2 changed files with 16 additions and 3 deletions

View File

@ -266,6 +266,8 @@ def create_edit(author=None, name=None):
else: else:
package = getPackageByInfo(author, name) package = getPackageByInfo(author, name)
if package is None:
abort(404)
if not package.checkPerm(current_user, Permission.EDIT_PACKAGE): if not package.checkPerm(current_user, Permission.EDIT_PACKAGE):
return redirect(package.getDetailsURL()) return redirect(package.getDetailsURL())

View File

@ -194,11 +194,11 @@ def rank_required(rank):
def getPackageByInfo(author, name): def getPackageByInfo(author, name):
user = User.query.filter_by(username=author).first() user = User.query.filter_by(username=author).first()
if user is None: if user is None:
abort(404) return None
package = Package.query.filter_by(name=name, author_id=user.id, soft_deleted=False).first() package = Package.query.filter_by(name=name, author_id=user.id, soft_deleted=False).first()
if package is None: if package is None:
abort(404) return None
return package return package
@ -208,7 +208,18 @@ def is_package_page(f):
if not ("author" in kwargs and "name" in kwargs): if not ("author" in kwargs and "name" in kwargs):
abort(400) abort(400)
package = getPackageByInfo(kwargs["author"], kwargs["name"]) author = kwargs["author"]
name = kwargs["name"]
package = getPackageByInfo(author, name)
if package is None:
package = getPackageByInfo(author, name + "_game")
if package is None or package.type != PackageType.GAME:
abort(404)
args = dict(kwargs)
args["name"] = name + "_game"
return redirect(url_for(request.endpoint, **args))
del kwargs["author"] del kwargs["author"]
del kwargs["name"] del kwargs["name"]