crud-mysql 0.1.7__tar.gz → 0.1.9__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.
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/PKG-INFO +4 -1
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/README.md +3 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql/__init__.py +2 -1
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql/endpoints.py +4 -2
- crud_mysql-0.1.9/crud_mysql/protect.py +35 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql.egg-info/PKG-INFO +4 -1
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/setup.py +1 -1
- crud_mysql-0.1.7/crud_mysql/protect.py +0 -19
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/LICENCE +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql/crud_object.py +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql/vars.py +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql.egg-info/SOURCES.txt +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql.egg-info/dependency_links.txt +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql.egg-info/requires.txt +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/crud_mysql.egg-info/top_level.txt +0 -0
- {crud_mysql-0.1.7 → crud_mysql-0.1.9}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crud-mysql
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9
|
|
4
4
|
Summary: crud defiend by json
|
|
5
5
|
Home-page: https://github.com/Ms-Shoshany/crud-mysql
|
|
6
6
|
Author: hanna
|
|
@@ -85,6 +85,9 @@ to protect endpoints by verifying tokens - add protected_methods to that object
|
|
|
85
85
|
|
|
86
86
|
here when using "GET" to get a car we will need to add a token.
|
|
87
87
|
|
|
88
|
+
important: also add to app.py the line:
|
|
89
|
+
set_jwt_protection(app)
|
|
90
|
+
|
|
88
91
|
in order for this to work a few things need to be set:
|
|
89
92
|
an environment varriable JWT_ALGORITHM should be set.
|
|
90
93
|
the options are:
|
|
@@ -55,6 +55,9 @@ to protect endpoints by verifying tokens - add protected_methods to that object
|
|
|
55
55
|
|
|
56
56
|
here when using "GET" to get a car we will need to add a token.
|
|
57
57
|
|
|
58
|
+
important: also add to app.py the line:
|
|
59
|
+
set_jwt_protection(app)
|
|
60
|
+
|
|
58
61
|
in order for this to work a few things need to be set:
|
|
59
62
|
an environment varriable JWT_ALGORITHM should be set.
|
|
60
63
|
the options are:
|
|
@@ -35,7 +35,7 @@ def get_object(object_type):
|
|
|
35
35
|
except Exception as e:
|
|
36
36
|
return jsonify(f"Invalid path: /{object_type}"), 404
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
@protect()
|
|
39
39
|
@crud.route("/<object_type>", methods=["POST"])
|
|
40
40
|
def create_object(object_type):
|
|
41
41
|
try:
|
|
@@ -53,7 +53,8 @@ def create_object(object_type):
|
|
|
53
53
|
return jsonify({"objectId": object_id}), 201
|
|
54
54
|
else:
|
|
55
55
|
return jsonify("error occured while creating object"), 500
|
|
56
|
-
|
|
56
|
+
|
|
57
|
+
@protect()
|
|
57
58
|
@crud.route("/<object_type>", methods=["PUT"])
|
|
58
59
|
def update_object(object_type):
|
|
59
60
|
try:
|
|
@@ -70,6 +71,7 @@ def update_object(object_type):
|
|
|
70
71
|
crud_object.update_object(object_id, object_info)
|
|
71
72
|
return jsonify(f"Successfully updated {object_type} with id: {object_id}"), 200
|
|
72
73
|
|
|
74
|
+
@protect()
|
|
73
75
|
@crud.route("/<object_type>", methods=["DELETE"])
|
|
74
76
|
def delete_object(object_type):
|
|
75
77
|
try:
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from flask_jwt_extended import JWTManager, jwt_required, get_jwt
|
|
2
|
+
from flask import request
|
|
3
|
+
from functools import wraps
|
|
4
|
+
from crud_mysql.crud_object import CrudObject
|
|
5
|
+
import os
|
|
6
|
+
|
|
7
|
+
def protect():
|
|
8
|
+
def decorator(fn):
|
|
9
|
+
@wraps(fn)
|
|
10
|
+
def wrapper(*args, **kwargs):
|
|
11
|
+
method = request.method
|
|
12
|
+
object_type = request.base_url.split("/")[-1]
|
|
13
|
+
crud = CrudObject(object_type).get_crud()[object_type]
|
|
14
|
+
if "protected_methods" in crud and method in crud["protected_methods"]:
|
|
15
|
+
return jwt_required()(fn)(*args, **kwargs)
|
|
16
|
+
else:
|
|
17
|
+
return fn(*args, **kwargs)
|
|
18
|
+
return wrapper
|
|
19
|
+
return decorator
|
|
20
|
+
|
|
21
|
+
def set_jwt_protection(app):
|
|
22
|
+
with open("crud.json", "r") as f:
|
|
23
|
+
crud_file = f.read()
|
|
24
|
+
if "protected_methods" in crud_file:
|
|
25
|
+
algo = os.environ.get("JWT_ALGORITHM", "HS256")
|
|
26
|
+
app.config['JWT_ALGORITHM'] = algo
|
|
27
|
+
if algo == "RS256":
|
|
28
|
+
SECRET_KEYS_PATH = os.environ.get("SECRET_KEYS_PATH", ".")
|
|
29
|
+
with open(f'{SECRET_KEYS_PATH}/public.pem', 'r') as f:
|
|
30
|
+
app.config['JWT_PUBLIC_KEY'] = f.read()
|
|
31
|
+
elif algo == "HS256":
|
|
32
|
+
if "SECRET_KEY" not in os.environ:
|
|
33
|
+
raise Exception("missing secret key for verifying tokens")
|
|
34
|
+
app.config['SECRET_KEY'] = os.environ.get("SECRET_KEY")
|
|
35
|
+
jwt = JWTManager(app)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crud-mysql
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.9
|
|
4
4
|
Summary: crud defiend by json
|
|
5
5
|
Home-page: https://github.com/Ms-Shoshany/crud-mysql
|
|
6
6
|
Author: hanna
|
|
@@ -85,6 +85,9 @@ to protect endpoints by verifying tokens - add protected_methods to that object
|
|
|
85
85
|
|
|
86
86
|
here when using "GET" to get a car we will need to add a token.
|
|
87
87
|
|
|
88
|
+
important: also add to app.py the line:
|
|
89
|
+
set_jwt_protection(app)
|
|
90
|
+
|
|
88
91
|
in order for this to work a few things need to be set:
|
|
89
92
|
an environment varriable JWT_ALGORITHM should be set.
|
|
90
93
|
the options are:
|
|
@@ -5,7 +5,7 @@ with open('README.md', encoding='utf-8') as f:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name='crud-mysql',
|
|
8
|
-
version='0.1.
|
|
8
|
+
version='0.1.9',
|
|
9
9
|
packages=find_packages(),
|
|
10
10
|
install_requires=['mysql-connector-python', 'mysql-database', 'flask', 'flask_jwt_extended', 'cryptography', 'PyJWT'],
|
|
11
11
|
author='hanna',
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
from flask_jwt_extended import JWTManager, jwt_required, get_jwt
|
|
2
|
-
from flask import request
|
|
3
|
-
from functools import wraps
|
|
4
|
-
from crud_mysql.crud_object import CrudObject
|
|
5
|
-
|
|
6
|
-
def protect():
|
|
7
|
-
def decorator(fn):
|
|
8
|
-
@wraps(fn)
|
|
9
|
-
def wrapper(*args, **kwargs):
|
|
10
|
-
method = request.method
|
|
11
|
-
object_type = request.base_url.split("/")[-1]
|
|
12
|
-
crud = CrudObject(object_type).get_crud()[object_type]
|
|
13
|
-
if "protected_methods" in crud and method in crud["protected_methods"]:
|
|
14
|
-
return jwt_required()(fn)(*args, **kwargs)
|
|
15
|
-
else:
|
|
16
|
-
return fn(*args, **kwargs)
|
|
17
|
-
return wrapper
|
|
18
|
-
return decorator
|
|
19
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|