autonomous-app 0.2.11__py3-none-any.whl → 0.2.13__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.
autonomous/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
- __version__ = "0.2.11"
1
+ __version__ = "0.2.13"
2
2
 
3
3
  from .logger import log
4
4
  from .model.automodel import AutoModel
@@ -110,6 +110,8 @@ class AutoAuth:
110
110
 
111
111
  if not guest and user.is_guest:
112
112
  return redirect(url_for("auth.login"))
113
+ if not admin and not user.is_admin:
114
+ return redirect(url_for("auth.login"))
113
115
  return func(*args, **kwargs)
114
116
 
115
117
  return decorated_view
autonomous/auth/user.py CHANGED
@@ -76,11 +76,11 @@ class AutoUser(AutoModel):
76
76
  """
77
77
  Returns True if the user is a guest, False otherwise.
78
78
  """
79
- return self.state == "unauthenticated" or self.role == "guest"
79
+ return not self.is_authenticated or self.role == "guest"
80
80
 
81
81
  @property
82
82
  def is_admin(self):
83
83
  """
84
84
  Returns True if the user is a guest, False otherwise.
85
85
  """
86
- return self.role == "admin"
86
+ return self.is_authenticated and self.role == "admin"
@@ -20,11 +20,16 @@ class DelayedModel:
20
20
  assert model
21
21
  assert pk
22
22
  module_name, class_name = model.rsplit(".", 1)
23
- module = importlib.import_module(module_name)
24
- model = getattr(module, class_name)
25
- object.__setattr__(self, "_delayed_model", model)
26
- object.__setattr__(self, "_delayed_pk", pk)
27
- object.__setattr__(self, "_delayed_obj", None)
23
+ try:
24
+ module = importlib.import_module(module_name)
25
+ except ModuleNotFoundError as e:
26
+ log(e)
27
+ raise DanglingReferenceError(model, pk, None)
28
+ else:
29
+ model = getattr(module, class_name)
30
+ object.__setattr__(self, "_delayed_model", model)
31
+ object.__setattr__(self, "_delayed_pk", pk)
32
+ object.__setattr__(self, "_delayed_obj", None)
28
33
 
29
34
  def _instance(self):
30
35
  #### DO NOT TO ANY LOGGING IN THIS METHOD; IT CAUSES INFINITE RECURSION ####
@@ -91,6 +91,9 @@ class AutoDecoder:
91
91
  if not obj["pk"]:
92
92
  raise KeyError
93
93
  return DelayedModel(obj["_automodel"], obj["pk"])
94
+ except DanglingReferenceError as e:
95
+ log(e)
96
+ return None
94
97
  except KeyError:
95
98
  log(
96
99
  "AutoModel",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autonomous-app
3
- Version: 0.2.11
3
+ Version: 0.2.13
4
4
  Summary: Containerized application framework built on Flask with additional libraries and tools for rapid development of web applications.
5
5
  Author-email: Steven A Moore <samoore@binghamton.edu>
6
6
  License: MIT License
@@ -1,13 +1,13 @@
1
- autonomous/__init__.py,sha256=OrggKD9WEAtYqTxM-M1RdLzL_FmDjtisB4TRkdSq44k,87
1
+ autonomous/__init__.py,sha256=mDRMvoHNQKlibAkYNZ7MTmqfiGrhEniNEf8TNmz3COE,87
2
2
  autonomous/cli.py,sha256=z4AaGeWNW_uBLFAHng0J_lfS9v3fXemK1PeT85u4Eo4,42
3
3
  autonomous/logger.py,sha256=hDX3gvbcWiGPvA8pfarih3xHS4aHG_NuNkF8PQfq_pM,1844
4
4
  autonomous/ai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  autonomous/ai/oaiagent.py,sha256=OWlSjvo8pEo6e5wrgvEGOL06AMKHECVW4ccnekaeZBU,7128
6
6
  autonomous/auth/__init__.py,sha256=IW5tQ8VYwHIbDfMYA0wYgx4PprwcjUWV4EoIJ8HTlMU,161
7
- autonomous/auth/autoauth.py,sha256=gZMBsF3XJf622VQy8JyobKCej0KcU2t-PfX3yQExgVw,3574
7
+ autonomous/auth/autoauth.py,sha256=a_5dZICdbdokxtHdihkwCcWI-d1TofGKV8llKbuI9xA,3685
8
8
  autonomous/auth/github.py,sha256=dHf84bJdV9rXGcvRLzWCPW9CvuA-VEmqYi_QQFwd2kY,886
9
9
  autonomous/auth/google.py,sha256=cHmqbyNEPTKipc3WkYcD1XPOyqcWEFW0Ks4qJYmGvPw,1049
10
- autonomous/auth/user.py,sha256=hmeZoTZIYe1pDz95M44RxNK-Og_nxWojKFBidWDWc4Y,2369
10
+ autonomous/auth/user.py,sha256=eDOIhGuWjzhyAxlZkt6lw74Ykxt2TluDanW17D-eZmc,2389
11
11
  autonomous/db/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
12
12
  autonomous/db/autodb.py,sha256=GifrahGJ2dAi8jQOiMIh0pgktcbuKt_1kAXIjKlKVZY,2376
13
13
  autonomous/db/table.py,sha256=geBQ2WZB2Y7t7pVw4jS07hmqg7hOv1YXZelPJehzHnw,4582
@@ -15,9 +15,9 @@ autonomous/errors/__init__.py,sha256=OruWG9IkAF4LN-OAo5c2K9Dnds4oZFJJQHKaXbQaWnA
15
15
  autonomous/errors/danglingreferenceerror.py,sha256=obfNjpn2vsyK4ak-UuuwFTMVzecs1SaeFPshOvnukS8,275
16
16
  autonomous/model/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
17
17
  autonomous/model/autoattribute.py,sha256=q09cORKC6-LpoZ3Ez-lRkd5kxuSFQrB2nA2f9_8k2c8,588
18
- autonomous/model/automodel.py,sha256=inJHhLJDIhz9SGGWmKQzYKiMhzj_0N0KG3kNc5JLb8E,12226
18
+ autonomous/model/automodel.py,sha256=Z8iDZB7frSV_lQ09HL-l0ff0_ePEuPwjLzWnpbdCsJw,12391
19
19
  autonomous/model/orm.py,sha256=IJrbp15RmBgF61vLsqcS_VdnAnw9736sLW75_xFYE9Y,2521
20
- autonomous/model/serializer.py,sha256=EnjyS-aWFTt1aDtEavR2xAmNGTX75cekTovohBfPhb0,2939
20
+ autonomous/model/serializer.py,sha256=0nfmw4-QNP-ozL4IVbgQyfPRF2i0-uG9pQZwgEPYuxU,3026
21
21
  autonomous/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  autonomous/storage/imagestorage.py,sha256=WOBvnpW3VhvliT2pXtaD_Msh1XEAVxqEBELblsvfdtA,3970
23
23
  autonomous/storage/localstorage.py,sha256=FzrR6O9mMGAZt5dDgqzkeOQVfGRXCygR0kksz2MPpwE,2286
@@ -29,8 +29,8 @@ autonomous/storage/version_control/GHVersionControl.py,sha256=VIhVRxe6gJgozFWyhy
29
29
  autonomous/storage/version_control/__init__.py,sha256=tP0bAWYl1RwBRi62HsIidmgyqHuSlCUqwGuKUKKRugc,117
30
30
  autonomous/tasks/__init__.py,sha256=pn7iZ14MhcHUdzcLkfkd4-45wgPP0tXahAz_cFgb_Tg,32
31
31
  autonomous/tasks/autotask.py,sha256=_WQ8w1LyV2FVJ0Ct0FoF9q1W8ClXfS57-omnBb0LNWE,4910
32
- autonomous_app-0.2.11.dist-info/LICENSE,sha256=-PHHSuDRkodHo3PEdMkDtoIdmLAOomMq6lsLaOetU8g,1076
33
- autonomous_app-0.2.11.dist-info/METADATA,sha256=KiLOPviT5APJ1g1TIYTB664DzwGHTMNhLikUVPI2arc,4229
34
- autonomous_app-0.2.11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
35
- autonomous_app-0.2.11.dist-info/top_level.txt,sha256=ZyxWWDdbvZekF3UFunxl4BQsVDb_FOW3eTn0vun_jb4,11
36
- autonomous_app-0.2.11.dist-info/RECORD,,
32
+ autonomous_app-0.2.13.dist-info/LICENSE,sha256=-PHHSuDRkodHo3PEdMkDtoIdmLAOomMq6lsLaOetU8g,1076
33
+ autonomous_app-0.2.13.dist-info/METADATA,sha256=bwqjdWlESFccuumtEZib3-XEfF7X-5y_4oKVKzjfXRs,4229
34
+ autonomous_app-0.2.13.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
35
+ autonomous_app-0.2.13.dist-info/top_level.txt,sha256=ZyxWWDdbvZekF3UFunxl4BQsVDb_FOW3eTn0vun_jb4,11
36
+ autonomous_app-0.2.13.dist-info/RECORD,,