uiprotect 6.6.2__py3-none-any.whl → 6.6.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of uiprotect might be problematic. Click here for more details.
- uiprotect/__init__.py +1 -1
- uiprotect/api.py +2 -4
- uiprotect/data/devices.py +22 -20
- {uiprotect-6.6.2.dist-info → uiprotect-6.6.4.dist-info}/METADATA +1 -1
- {uiprotect-6.6.2.dist-info → uiprotect-6.6.4.dist-info}/RECORD +8 -8
- {uiprotect-6.6.2.dist-info → uiprotect-6.6.4.dist-info}/LICENSE +0 -0
- {uiprotect-6.6.2.dist-info → uiprotect-6.6.4.dist-info}/WHEEL +0 -0
- {uiprotect-6.6.2.dist-info → uiprotect-6.6.4.dist-info}/entry_points.txt +0 -0
uiprotect/__init__.py
CHANGED
uiprotect/api.py
CHANGED
|
@@ -12,7 +12,7 @@ import time
|
|
|
12
12
|
from collections.abc import Callable
|
|
13
13
|
from datetime import datetime, timedelta
|
|
14
14
|
from functools import partial
|
|
15
|
-
from http import HTTPStatus
|
|
15
|
+
from http import HTTPStatus, cookies
|
|
16
16
|
from http.cookies import Morsel, SimpleCookie
|
|
17
17
|
from ipaddress import IPv4Address, IPv6Address
|
|
18
18
|
from pathlib import Path
|
|
@@ -67,9 +67,7 @@ from .utils import (
|
|
|
67
67
|
)
|
|
68
68
|
from .websocket import Websocket, WebsocketState
|
|
69
69
|
|
|
70
|
-
if
|
|
71
|
-
from http import cookies
|
|
72
|
-
|
|
70
|
+
if "partitioned" not in cookies.Morsel._reserved: # type: ignore[attr-defined]
|
|
73
71
|
# See: https://github.com/python/cpython/issues/112713
|
|
74
72
|
cookies.Morsel._reserved["partitioned"] = "partitioned" # type: ignore[attr-defined]
|
|
75
73
|
cookies.Morsel._flags.add("partitioned") # type: ignore[attr-defined]
|
uiprotect/data/devices.py
CHANGED
|
@@ -2014,17 +2014,18 @@ class Camera(ProtectMotionDeviceModel):
|
|
|
2014
2014
|
Datetime of screenshot is approximate. It may be +/- a few seconds.
|
|
2015
2015
|
"""
|
|
2016
2016
|
# Use READ_LIVE if dt is None, otherwise READ_MEDIA
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2017
|
+
auth_user = self._api.bootstrap.auth_user
|
|
2018
|
+
if dt is None:
|
|
2019
|
+
if not (
|
|
2020
|
+
auth_user.can(ModelType.CAMERA, PermissionNode.READ_LIVE, self)
|
|
2021
|
+
or auth_user.can(ModelType.CAMERA, PermissionNode.READ_MEDIA, self)
|
|
2022
|
+
):
|
|
2023
|
+
raise NotAuthorized(
|
|
2024
|
+
f"Do not have permission to read live or media for camera: {self.id}"
|
|
2025
|
+
)
|
|
2026
|
+
elif not auth_user.can(ModelType.CAMERA, PermissionNode.READ_MEDIA, self):
|
|
2026
2027
|
raise NotAuthorized(
|
|
2027
|
-
f"Do not have permission to
|
|
2028
|
+
f"Do not have permission to read media for camera: {self.id}"
|
|
2028
2029
|
)
|
|
2029
2030
|
|
|
2030
2031
|
if height is None and width is None and self.high_camera_channel is not None:
|
|
@@ -2046,18 +2047,19 @@ class Camera(ProtectMotionDeviceModel):
|
|
|
2046
2047
|
if not self.feature_flags.has_package_camera:
|
|
2047
2048
|
raise BadRequest("Device does not have package camera")
|
|
2048
2049
|
|
|
2050
|
+
auth_user = self._api.bootstrap.auth_user
|
|
2049
2051
|
# Use READ_LIVE if dt is None, otherwise READ_MEDIA
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2052
|
+
if dt is None:
|
|
2053
|
+
if not (
|
|
2054
|
+
auth_user.can(ModelType.CAMERA, PermissionNode.READ_LIVE, self)
|
|
2055
|
+
or auth_user.can(ModelType.CAMERA, PermissionNode.READ_MEDIA, self)
|
|
2056
|
+
):
|
|
2057
|
+
raise NotAuthorized(
|
|
2058
|
+
f"Do not have permission to read live or media for camera: {self.id}"
|
|
2059
|
+
)
|
|
2060
|
+
elif not auth_user.can(ModelType.CAMERA, PermissionNode.READ_MEDIA, self):
|
|
2059
2061
|
raise NotAuthorized(
|
|
2060
|
-
f"Do not have permission to
|
|
2062
|
+
f"Do not have permission to read media for camera: {self.id}"
|
|
2061
2063
|
)
|
|
2062
2064
|
|
|
2063
2065
|
if height is None and width is None and self.package_camera_channel is not None:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
uiprotect/__init__.py,sha256=
|
|
1
|
+
uiprotect/__init__.py,sha256=Oz6i1tonIz4QWVnEPkbielJDJ3WQdwZVgYtjY4IwGAQ,636
|
|
2
2
|
uiprotect/__main__.py,sha256=C_bHCOkv5qj6WMy-6ELoY3Y6HDhLxOa1a30CzmbZhsg,462
|
|
3
3
|
uiprotect/_compat.py,sha256=HThmb1zQZCEssCxYYbQzFhJq8zYYlVaSnIEZabKc-6U,302
|
|
4
|
-
uiprotect/api.py,sha256=
|
|
4
|
+
uiprotect/api.py,sha256=Gc_x8mo-W-xtEFAhRIkiQyW99MJQgWdkkXlKxl3h-JU,67978
|
|
5
5
|
uiprotect/cli/__init__.py,sha256=1MO8rJmjjAsfVx2x01gn5DJo8B64xdPGo6gRVJbWd18,8868
|
|
6
6
|
uiprotect/cli/backup.py,sha256=ZiS7RZnJGKI8TJKLW2cOUzkRM8nyTvE5Ov_jZZGtvSM,36708
|
|
7
7
|
uiprotect/cli/base.py,sha256=k-_qGuNT7br0iV0KE5F4wYXF75iyLLjBEckTqxC71xM,7591
|
|
@@ -18,7 +18,7 @@ uiprotect/data/__init__.py,sha256=OcfuJl2qXfHcj_mdnrHhzZ5tEIZrw8auziX5IE7dn-I,29
|
|
|
18
18
|
uiprotect/data/base.py,sha256=sn7IHKQN96uiZL6ImN1gdCHV97EpUmy-X7xWTUAtWsg,35054
|
|
19
19
|
uiprotect/data/bootstrap.py,sha256=iROUw-pPdJpytaV8Dg5peOJotI7jidXJABsEzCQGid8,20704
|
|
20
20
|
uiprotect/data/convert.py,sha256=8h6Il_DhMkPRDPj9F_rA2UZIlTuchS3BQD24peKpk2A,2185
|
|
21
|
-
uiprotect/data/devices.py,sha256=
|
|
21
|
+
uiprotect/data/devices.py,sha256=KIk4o1mhE7EruhuwroyoBf2kLOCTh0-LYBa7yaqk1bU,113421
|
|
22
22
|
uiprotect/data/nvr.py,sha256=FGI0eIAyy3Zy9kaxcr67HxwaVCUU8wq3oZyWvoDq7Sg,47251
|
|
23
23
|
uiprotect/data/types.py,sha256=PA9YOEJCmh9DAlJajHh2Y6hi4aTjlQ8LhWN8ZH5x7Fc,18522
|
|
24
24
|
uiprotect/data/user.py,sha256=1o5gyPHafn4lHARpoSMD_NWbo5IbzGPfiSASwqqDvWs,7002
|
|
@@ -31,8 +31,8 @@ uiprotect/test_util/__init__.py,sha256=Ky8mTL61nhp5II2mxTKBAsSGvNqK8U_CfKC5AGwTo
|
|
|
31
31
|
uiprotect/test_util/anonymize.py,sha256=f-8ijU-_y9r-uAbhIPn0f0I6hzJpAkvJzc8UpWihObI,8478
|
|
32
32
|
uiprotect/utils.py,sha256=jIWT7n_reL90oY91svBfQ4naRxo28qHzP5jNOL12mQE,20342
|
|
33
33
|
uiprotect/websocket.py,sha256=tEyenqblNXHcjWYuf4oRP1E7buNwx6zoECMwpBr-jig,8191
|
|
34
|
-
uiprotect-6.6.
|
|
35
|
-
uiprotect-6.6.
|
|
36
|
-
uiprotect-6.6.
|
|
37
|
-
uiprotect-6.6.
|
|
38
|
-
uiprotect-6.6.
|
|
34
|
+
uiprotect-6.6.4.dist-info/LICENSE,sha256=INx18jhdbVXMEiiBANeKEbrbz57ckgzxk5uutmmcxGk,1111
|
|
35
|
+
uiprotect-6.6.4.dist-info/METADATA,sha256=I5I00-fRjsppSQH_SgW27u4_fAmaH4yDJo_OAlTvRfM,11096
|
|
36
|
+
uiprotect-6.6.4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
37
|
+
uiprotect-6.6.4.dist-info/entry_points.txt,sha256=J78AUTPrTTxgI3s7SVgrmGqDP7piX2wuuEORzhDdVRA,47
|
|
38
|
+
uiprotect-6.6.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|