square-administration 2.2.1__tar.gz → 2.4.0__tar.gz

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.
Files changed (22) hide show
  1. {square_administration-2.2.1 → square_administration-2.4.0}/PKG-INFO +14 -1
  2. {square_administration-2.2.1 → square_administration-2.4.0}/README.md +13 -0
  3. {square_administration-2.2.1 → square_administration-2.4.0}/setup.py +1 -1
  4. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/configuration.py +1 -0
  5. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/data/config.ini +2 -0
  6. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/main.py +2 -5
  7. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/routes/authentication.py +19 -0
  8. square_administration-2.4.0/square_administration/utils/common.py +12 -0
  9. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration.egg-info/PKG-INFO +14 -1
  10. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration.egg-info/SOURCES.txt +2 -1
  11. {square_administration-2.2.1 → square_administration-2.4.0}/setup.cfg +0 -0
  12. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/__init__.py +0 -0
  13. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/messages.py +0 -0
  14. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/pydantic_models/__init__.py +0 -0
  15. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/pydantic_models/authentication.py +0 -0
  16. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/pydantic_models/core.py +0 -0
  17. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/routes/__init__.py +0 -0
  18. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/routes/core.py +0 -0
  19. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration/utils/__init__.py +0 -0
  20. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration.egg-info/dependency_links.txt +0 -0
  21. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration.egg-info/requires.txt +0 -0
  22. {square_administration-2.2.1 → square_administration-2.4.0}/square_administration.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: square_administration
3
- Version: 2.2.1
3
+ Version: 2.4.0
4
4
  Summary: common business layer for my personal server.
5
5
  Home-page: https://github.com/thepmsquare/square_administration
6
6
  Author: thePmSquare
@@ -32,6 +32,19 @@ pip install square_administration
32
32
 
33
33
  ## changelog
34
34
 
35
+ ### v2.4.0
36
+
37
+ - auto docker image build github action.
38
+
39
+ ### v2.3.0
40
+
41
+ - env
42
+ - add new variable COOKIE_DOMAIN.
43
+ - util
44
+ - add is_https.
45
+ - authentication
46
+ - add domain, exp_time, secure and http_only flags for cookies generated in login_username_v0, register_username_v0.
47
+
35
48
  ### v2.2.1
36
49
 
37
50
  - authentication
@@ -16,6 +16,19 @@ pip install square_administration
16
16
 
17
17
  ## changelog
18
18
 
19
+ ### v2.4.0
20
+
21
+ - auto docker image build github action.
22
+
23
+ ### v2.3.0
24
+
25
+ - env
26
+ - add new variable COOKIE_DOMAIN.
27
+ - util
28
+ - add is_https.
29
+ - authentication
30
+ - add domain, exp_time, secure and http_only flags for cookies generated in login_username_v0, register_username_v0.
31
+
19
32
  ### v2.2.1
20
33
 
21
34
  - authentication
@@ -4,7 +4,7 @@ package_name = "square_administration"
4
4
 
5
5
  setup(
6
6
  name=package_name,
7
- version="2.2.1",
7
+ version="2.4.0",
8
8
  packages=find_packages(),
9
9
  package_data={
10
10
  package_name: ["data/*"],
@@ -42,6 +42,7 @@ try:
42
42
  config_str_ssl_key_file_path = ldict_configuration["ENVIRONMENT"][
43
43
  "SSL_KEY_FILE_PATH"
44
44
  ]
45
+ config_str_cookie_domain = ldict_configuration["ENVIRONMENT"]["COOKIE_DOMAIN"]
45
46
  # ===========================================
46
47
 
47
48
  # ===========================================
@@ -14,6 +14,8 @@ ADMIN_PASSWORD_HASH = $2b$12$tDw4ZR0guiF5s5oVve5PcuELhlWO.lUH.OChPoeWVn95ac7QJln
14
14
  SSL_CRT_FILE_PATH = ssl.crt
15
15
  SSL_KEY_FILE_PATH = ssl.key
16
16
 
17
+ COOKIE_DOMAIN = localhost
18
+
17
19
  [SQUARE_LOGGER]
18
20
 
19
21
  # | Log Level | Value |
@@ -1,5 +1,3 @@
1
- import os.path
2
-
3
1
  from fastapi import FastAPI, status
4
2
  from fastapi.middleware.cors import CORSMiddleware
5
3
  from fastapi.responses import JSONResponse
@@ -15,6 +13,7 @@ from square_administration.configuration import (
15
13
  config_str_ssl_crt_file_path,
16
14
  )
17
15
  from square_administration.routes import core, authentication
16
+ from square_administration.utils.common import is_https
18
17
 
19
18
  app = FastAPI()
20
19
 
@@ -39,9 +38,7 @@ async def root():
39
38
 
40
39
  if __name__ == "__main__":
41
40
  try:
42
- if os.path.exists(config_str_ssl_key_file_path) and os.path.exists(
43
- config_str_ssl_crt_file_path
44
- ):
41
+ if is_https():
45
42
  run(
46
43
  app,
47
44
  host=config_str_host_ip,
@@ -1,4 +1,5 @@
1
1
  import json
2
+ from datetime import datetime
2
3
  from typing import Annotated
3
4
 
4
5
  import bcrypt
@@ -14,12 +15,14 @@ from square_administration.configuration import (
14
15
  config_str_admin_password_hash,
15
16
  global_object_square_authentication_helper,
16
17
  global_int_app_id,
18
+ config_str_cookie_domain,
17
19
  )
18
20
  from square_administration.messages import messages
19
21
  from square_administration.pydantic_models.authentication import (
20
22
  RegisterUsernameV0,
21
23
  LoginUsernameV0,
22
24
  )
25
+ from square_administration.utils.common import is_https
23
26
 
24
27
  router = APIRouter(
25
28
  tags=["authentication"],
@@ -69,7 +72,11 @@ async def register_username_v0(
69
72
  return value
70
73
  """
71
74
  refresh_token = response["data"]["main"]["refresh_token"]
75
+ refresh_token_expiry_time = response["data"]["main"][
76
+ "refresh_token_expiry_time"
77
+ ]
72
78
  del response["data"]["main"]["refresh_token"]
79
+ del response["data"]["main"]["refresh_token_expiry_time"]
73
80
  output_content = get_api_output_in_standard_format(
74
81
  message=messages["REGISTRATION_SUCCESSFUL"],
75
82
  data={"main": response["data"]["main"]},
@@ -82,6 +89,10 @@ async def register_username_v0(
82
89
  **create_cookie(
83
90
  key="refresh_token|" + str(global_int_app_id),
84
91
  value=refresh_token,
92
+ domain=config_str_cookie_domain,
93
+ expires=datetime.fromisoformat(refresh_token_expiry_time),
94
+ secure=is_https(),
95
+ http_only=True,
85
96
  )
86
97
  )
87
98
  return json_response
@@ -145,7 +156,11 @@ async def login_username_v0(
145
156
  return value
146
157
  """
147
158
  refresh_token = response["data"]["main"]["refresh_token"]
159
+ refresh_token_expiry_time = response["data"]["main"][
160
+ "refresh_token_expiry_time"
161
+ ]
148
162
  del response["data"]["main"]["refresh_token"]
163
+ del response["data"]["main"]["refresh_token_expiry_time"]
149
164
  output_content = get_api_output_in_standard_format(
150
165
  message=messages["LOGIN_SUCCESSFUL"],
151
166
  data={"main": response["data"]["main"]},
@@ -158,6 +173,10 @@ async def login_username_v0(
158
173
  **create_cookie(
159
174
  key="refresh_token|" + str(global_int_app_id),
160
175
  value=refresh_token,
176
+ domain=config_str_cookie_domain,
177
+ expires=datetime.fromisoformat(refresh_token_expiry_time),
178
+ secure=is_https(),
179
+ http_only=True,
161
180
  )
162
181
  )
163
182
  return json_response
@@ -0,0 +1,12 @@
1
+ import os
2
+
3
+ from square_administration.configuration import (
4
+ config_str_ssl_key_file_path,
5
+ config_str_ssl_crt_file_path,
6
+ )
7
+
8
+
9
+ def is_https() -> bool:
10
+ return os.path.exists(config_str_ssl_key_file_path) and os.path.exists(
11
+ config_str_ssl_crt_file_path
12
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: square-administration
3
- Version: 2.2.1
3
+ Version: 2.4.0
4
4
  Summary: common business layer for my personal server.
5
5
  Home-page: https://github.com/thepmsquare/square_administration
6
6
  Author: thePmSquare
@@ -32,6 +32,19 @@ pip install square_administration
32
32
 
33
33
  ## changelog
34
34
 
35
+ ### v2.4.0
36
+
37
+ - auto docker image build github action.
38
+
39
+ ### v2.3.0
40
+
41
+ - env
42
+ - add new variable COOKIE_DOMAIN.
43
+ - util
44
+ - add is_https.
45
+ - authentication
46
+ - add domain, exp_time, secure and http_only flags for cookies generated in login_username_v0, register_username_v0.
47
+
35
48
  ### v2.2.1
36
49
 
37
50
  - authentication
@@ -16,4 +16,5 @@ square_administration/pydantic_models/core.py
16
16
  square_administration/routes/__init__.py
17
17
  square_administration/routes/authentication.py
18
18
  square_administration/routes/core.py
19
- square_administration/utils/__init__.py
19
+ square_administration/utils/__init__.py
20
+ square_administration/utils/common.py