feat: scoped responsibility selectors, home card layouts and network topology
This commit is contained in:
@@ -263,7 +263,7 @@ def save_asset(body, actor=None):
|
||||
item = {k: clean_text(body.get(k, ''), 120, required=k == 'name')
|
||||
for k in ('name', 'brand', 'model', 'serial', 'point', 'note')}
|
||||
item.update(id=key, siteId=site, lensCount=integer(body.get('lensCount', 2), 1, 16), familyId=family)
|
||||
item.update(INVENTORY.metadata(body, get_object('assets', key)))
|
||||
item.update(INVENTORY.metadata(body, get_object('assets', key), actor))
|
||||
attached = [c for c in objects('cameras') if c.get('assetId') == key]
|
||||
if len(attached) > item['lensCount']:
|
||||
raise Problem('镜头数不能小于已经建立的通道数')
|
||||
@@ -295,7 +295,7 @@ def save_recorder(body, actor=None):
|
||||
if not isinstance(password, str) or len(password) > 256 or any(ord(c) < 32 for c in password):
|
||||
raise Problem('密码格式不正确')
|
||||
item['password'] = password or old.get('password', '')
|
||||
item.update(INVENTORY.metadata(body, old))
|
||||
item.update(INVENTORY.metadata(body, old, actor))
|
||||
save_object('recorders', item)
|
||||
write_media_config()
|
||||
audit('保存录像机', item['name'])
|
||||
@@ -657,7 +657,7 @@ class Handler(BaseHTTPRequestHandler):
|
||||
self.login(data, path == '/api/setup')
|
||||
return
|
||||
self.require_auth()
|
||||
if path not in ('/api/logout', '/api/account/password', '/api/preferences', '/api/family/restore',
|
||||
if path not in ('/api/logout', '/api/account/password', '/api/preferences', '/api/households/layout', '/api/family/restore',
|
||||
'/api/family/person', '/api/family/link', '/api/family/event', '/api/heritage', '/api/ptz', '/api/ptz/presets',
|
||||
'/api/journal', '/api/journal/action', '/api/journal/upload', '/api/journal/finish', '/api/journal/remove-upload', '/api/journal/restore-upload'):
|
||||
self.require_manager()
|
||||
@@ -668,6 +668,8 @@ class Handler(BaseHTTPRequestHandler):
|
||||
self.answer({'ok': True}, cookie='vision=; Path=/; Max-Age=0; HttpOnly; SameSite=Strict')
|
||||
elif path == '/api/preferences':
|
||||
self.answer(APPEARANCE.save_preferences(data, self.user))
|
||||
elif path == '/api/households/layout':
|
||||
self.answer(HOUSEHOLDS.save_layout(data, self.user))
|
||||
elif path == '/api/baidu/config':
|
||||
self.require_admin(); self.answer(BAIDU.configure(data, self.user))
|
||||
elif path == '/api/baidu/connect':
|
||||
|
||||
Reference in New Issue
Block a user