Skip to content

Commit bbe6210

Browse files
committed
add service view and api check
- add service view to admin interface - add service check on package upload
1 parent e48a3c4 commit bbe6210

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

spkrepo/views/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
IndexView,
77
PackageView,
88
ScreenshotView,
9+
ServiceView,
910
UserView,
1011
VersionView,
1112
)

spkrepo/views/admin.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,16 @@
1616
from wtforms.validators import Regexp
1717

1818
from ..ext import db
19-
from ..models import Architecture, Build, Firmware, Package, Screenshot, User, Version
19+
from ..models import (
20+
Architecture,
21+
Build,
22+
Firmware,
23+
Package,
24+
Screenshot,
25+
Service,
26+
User,
27+
Version,
28+
)
2029
from ..utils import SPK
2130

2231

@@ -111,6 +120,21 @@ def is_accessible(self):
111120
can_delete = False
112121

113122

123+
class ServiceView(ModelView):
124+
"""View for :class:`~spkrepo.models.Service`"""
125+
126+
def __init__(self, **kwargs):
127+
super(ServiceView, self).__init__(Service, db.session, **kwargs)
128+
129+
# Permissions
130+
def is_accessible(self):
131+
return current_user.is_authenticated and current_user.has_role("package_admin")
132+
133+
can_edit = False
134+
135+
can_delete = False
136+
137+
114138
def screenshot_namegen(obj, file_data):
115139
pattern = "screenshot_%0d%s"
116140
ext = os.path.splitext(file_data.filename)[1]

spkrepo/views/api.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,16 @@ def post(self):
130130
if firmware is None:
131131
abort(422, message="Unknown firmware")
132132

133+
# Services
134+
input_install_dep_services = spk.info["install_dep_services"]
135+
if input_install_dep_services:
136+
for info_dep_service in input_install_dep_services.split():
137+
service_name = Service.find(info_dep_service)
138+
if service_name is None:
139+
abort(
140+
422, message="Unknown dependent service: %s" % info_dep_service
141+
)
142+
133143
# Package
134144
create_package = False
135145
package = Package.find(spk.info["package"])

0 commit comments

Comments
 (0)