From 496f813ac5181793dab558a9ffc1d9a5ac535380 Mon Sep 17 00:00:00 2001 From: drpsyko101 Date: Wed, 13 Nov 2024 14:10:54 +0800 Subject: [PATCH 1/2] Allow queries by model's fields * All requests now can use any fields in the model except for binary * Fields now support wildcard (*) to output all model fields * GET request will return ID field if no fields are given * Return proper HTTP error codes and messages in JSON format by default * Add pagination support --- rest_api_odoo/controllers/rest_api_odoo.py | 398 +++++++++++---------- 1 file changed, 206 insertions(+), 192 deletions(-) diff --git a/rest_api_odoo/controllers/rest_api_odoo.py b/rest_api_odoo/controllers/rest_api_odoo.py index 61145a47ef..23339e1a64 100644 --- a/rest_api_odoo/controllers/rest_api_odoo.py +++ b/rest_api_odoo/controllers/rest_api_odoo.py @@ -19,12 +19,14 @@ # If not, see . # ############################################################################# + import json import logging -from datetime import datetime +from datetime import datetime from odoo import http -from odoo.http import request +from odoo.http import request, Response +from ast import literal_eval _logger = logging.getLogger(__name__) @@ -36,220 +38,232 @@ class RestApi(http.Controller): def auth_api_key(self, api_key): """This function is used to authenticate the api-key when sending a request""" - user_id = request.env['res.users'].sudo().search([('api_key', '=', api_key)]) + + user_id = request.env["res.users"].search([("api_key", "=", api_key)]) if api_key is not None and user_id: - response = True + return Response(json.dumps({"message": "Authorized"}), status=200) elif not user_id: - response = ('

Invalid API Key ' - '!

') - else: - response = ("

No API Key Provided " - "!

") - return response + return Response(json.dumps({"message": "Invalid API Key"}), status=401) + return Response(json.dumps({"message": "No API Key Provided"}), status=400) + + def simplest_type(self, input): + """Try cast input into native Python class, otherwise return as string""" + try: + return literal_eval(input) + except Exception: + # Handle lowercase booleans + if input == "true": + return True + if input == "false": + return False + return input - def generate_response(self, method, model, rec_id): + def sanitize_records(self, records): + """Sanitize records for response""" + for record in records: + for key, value in record.items(): + # Manually convert datetime fields to string format + if isinstance(value, datetime): + record[key] = value.isoformat() + return records + + def generate_response(self, method, **query): """This function is used to generate the response based on the type of request and the parameters given""" - option = request.env['connection.api'].search( - [('model_id', '=', model)], limit=1) - model_name = option.model_id.model - if method != 'DELETE': - data = json.loads(request.httprequest.data) - else: - data = {} - fields = [] - if data: - for field in data['fields']: - fields.append(field) - if not fields and method != 'DELETE': - return ("

No fields selected for the model" - "

") - if not option: - return ("

No Record Created for the model" - "

") try: - if method == 'GET': - fields = [] - for field in data['fields']: + model = query.pop("model") + option = request.env["connection.api"].search( + [("model_id", "=", model)], limit=1 + ) + model_name = option.model_id.model + model_display_name = option.model_id.name + + try: + data = json.loads(request.httprequest.data) + except Exception: + data = {} + + fields = [] + if data: + for field in data["fields"]: fields.append(field) + + # Return records' ID by default if not specified + if not fields: + fields.append("id") + + # Get all model's fields if wildcard is used + if "*" in fields: + fields = [] + record_fields = request.env[str(model_name)].fields_get( + [], attributes=["type"] + ) + for field, value in record_fields.items(): + value_type = value.get("type") + if not (value_type == "binary"): + fields.append(field) + if not option: + raise NotImplementedError("No Record Created for the model. ") + if method == "GET": if not option.is_get: - return ("

Method Not Allowed" - "

") - else: - datas = [] - if rec_id != 0: - partner_records = request.env[ - str(model_name) - ].search_read( - domain=[('id', '=', rec_id)], - fields=fields - ) - - # Manually convert datetime fields to string format - for record in partner_records: - for key, value in record.items(): - if isinstance(value, datetime): - record[key] = value.isoformat() - data = json.dumps({ - 'records': partner_records - }) - datas.append(data) - return request.make_response(data=datas) - else: - partner_records = request.env[ - str(model_name) - ].search_read( - domain=[], - fields=fields - ) - - # Manually convert datetime fields to string format - for record in partner_records: - for key, value in record.items(): - if isinstance(value, datetime): - record[key] = value.isoformat() - - data = json.dumps({ - 'records': partner_records - }) - datas.append(data) - return request.make_response(data=datas) - except: - return ("

Invalid JSON Data" - "

") - if method == 'POST': - if not option.is_post: - return ("

Method Not Allowed" - "

") - else: - try: - data = json.loads(request.httprequest.data) - datas = [] - new_resource = request.env[str(model_name)].create( - data['values']) - partner_records = request.env[ - str(model_name)].search_read( - domain=[('id', '=', new_resource.id)], - fields=fields + raise NameError() + limit = 0 + if query.get("limit"): + limit = int(str(query.get("limit"))) + offset = 0 + if query.get("offset"): + offset = int(str(query.get("offset"))) + + domains = [] + for key, value in query.items(): + if not (key == "limit" or key == "offset"): + domains.append((key, "=", self.simplest_type(value))) + partner_records = request.env[str(model_name)].search_read( + domains, fields, limit=limit, offset=offset + ) + + return Response( + json.dumps({"records": self.sanitize_records(partner_records)}) + ) + if method == "POST": + if not option.is_post: + raise NotImplementedError() + if not data or "values" not in data: + raise ValueError("No Data Provided") + + data = json.loads(request.httprequest.data) + new_resource = request.env[str(model_name)].create(data["values"]) + partner_records = request.env[str(model_name)].search_read( + [("id", "=", new_resource.id)], fields + ) + return Response( + json.dumps({"new_record": self.sanitize_records(partner_records)}), + status=201, + ) + if method == "PUT": + if not option.is_put: + raise NotImplementedError() + + if "id" not in query: + raise ValueError("No ID Provided") + if not data or "values" not in data: + raise ValueError("No Data Provided") + + resource_id = str(query.get("id")) + resource = request.env[str(model_name)].browse(int(resource_id)) + if not resource.exists(): + raise ValueError("Resource not found") + + data = json.loads(request.httprequest.data) + resource.write(data["values"]) + partner_records = request.env[str(model_name)].search_read( + [("id", "=", resource.id)], fields + ) + return Response( + json.dumps( + {"updated_record": self.sanitize_records(partner_records)} ) - new_data = json.dumps({'New resource': partner_records, }) - datas.append(new_data) - return request.make_response(data=datas) - except: - return ("

Invalid JSON Data" - "

") - if method == 'PUT': - if not option.is_put: - return ("

Method Not Allowed" - "

") - else: - if rec_id == 0: - return ("

No ID Provided" - "

") - else: - resource = request.env[str(model_name)].browse( - int(rec_id)) - if not resource.exists(): - return ("

Resource not found" - "

") - else: - try: - datas = [] - data = json.loads(request.httprequest.data) - resource.write(data['values']) - partner_records = request.env[ - str(model_name)].search_read( - domain=[('id', '=', resource.id)], - fields=fields - ) - new_data = json.dumps( - {'Updated resource': partner_records, - }) - datas.append(new_data) - return request.make_response(data=datas) - - except: - return ("

Invalid JSON Data " - "!

") - if method == 'DELETE': - if not option.is_delete: - return ("

Method Not Allowed" - "

") - else: - if rec_id == 0: - return ("

No ID Provided" - "

") - else: - resource = request.env[str(model_name)].browse( - int(rec_id)) - if not resource.exists(): - return ("

Resource not found" - "

") - else: - - records = request.env[ - str(model_name)].search_read( - domain=[('id', '=', resource.id)], - fields=['id', 'display_name'] - ) - remove = json.dumps( - {"Resource deleted": records, - }) - resource.unlink() - return request.make_response(data=remove) - - @http.route(['/send_request'], type='http', - auth='none', - methods=['GET', 'POST', 'PUT', 'DELETE'], csrf=False) + ) + if method == "DELETE": + if not option.is_delete: + raise NotImplementedError() + + if "id" not in query: + raise ValueError("No ID Provided") + + resource_id = str(query.get("id")) + resource = request.env[str(model_name)].browse(int(resource_id)) + if not resource.exists(): + raise ValueError("Resource not found") + + partner_records = request.env[str(model_name)].search_read( + [("id", "=", resource.id)], fields + ) + resource.unlink() + return Response( + json.dumps( + { + "message": "Resource deleted", + "data": self.sanitize_records(partner_records), + } + ), + status=202, + ) + + # If not using any method above, simply return an error + raise NotImplementedError() + except ValueError as e: + return Response(json.dumps({"message": e.args[0]}), status=403) + except NotImplementedError as e: + return Response( + json.dumps( + { + "message": f"Method not allowed. {e.args[0]}Please contact your admininstrator to enable {method} method for {model_display_name or 'this'} record." + } + ), + status=405, + ) + except Exception: + return Response( + json.dumps({"message": "Internal server error"}), status=500 + ) + + @http.route( + ["/send_request"], + type="http", + auth="none", + methods=["GET", "POST", "PUT", "DELETE"], + csrf=False, + ) def fetch_data(self, **kw): """This controller will be called when sending a request to the specified url, and it will authenticate the api-key and then will generate the result""" + http_method = request.httprequest.method - api_key = request.httprequest.headers.get('api-key') + api_key = request.httprequest.headers.get("api-key") auth_api = self.auth_api_key(api_key) - model = kw.get('model') - username = request.httprequest.headers.get('login') - password = request.httprequest.headers.get('password') - request.session.authenticate(request.session.db, username, - password) - model_id = request.env['ir.model'].search( - [('model', '=', model)]) + model = kw.pop("model") + username = request.httprequest.headers.get("login") + password = request.httprequest.headers.get("password") + request.session.authenticate(request.session.db, username, password) + model_id = request.env["ir.model"].search([("model", "=", model)]) if not model_id: - return ("

Invalid model, check spelling or maybe " - "the related " - "module is not installed" - "

") - - if auth_api == True: - if not kw.get('Id'): - rec_id = 0 - else: - rec_id = int(kw.get('Id')) - result = self.generate_response(http_method, model_id.id, rec_id) + return Response( + json.dumps( + { + "message": "Invalid model, check spelling or maybe the related module is not installed" + } + ), + status=403, + ) + + if auth_api.status_code == 200: + result = self.generate_response(http_method, model=model_id.id, **kw) return result else: return auth_api - @http.route(['/odoo_connect'], type="http", auth="none", csrf=False, - methods=['GET']) + @http.route( + ["/odoo_connect"], type="http", auth="none", csrf=False, methods=["GET"] + ) def odoo_connect(self, **kw): """This is the controller which initializes the api transaction by generating the api-key for specific user and database""" - username = request.httprequest.headers.get('login') - password = request.httprequest.headers.get('password') - db = request.httprequest.headers.get('db') + username = request.httprequest.headers.get("login") + password = request.httprequest.headers.get("password") + db = request.httprequest.headers.get("db") try: request.session.update(http.get_default_session(), db=db) - auth = request.session.authenticate(request.session.db, username, - password) - user = request.env['res.users'].browse(auth) + auth = request.session.authenticate(request.session.db, username, password) + user = request.env["res.users"].browse(auth) api_key = request.env.user.generate_api(username) - datas = json.dumps({"Status": "auth successful", - "User": user.name, - "api-key": api_key}) - return request.make_response(data=datas) - except: - return ("

wrong login credentials" - "

") + datas = json.dumps( + {"Status": "auth successful", "User": user.name, "api-key": api_key} + ) + return Response(datas) + except Exception: + return Response( + json.dumps({"message": "wrong login credentials"}), status=401 + ) From 502ccce86071e89e4c62faa0131e4a7f75420352 Mon Sep 17 00:00:00 2001 From: drpsyko101 Date: Sun, 17 Nov 2024 17:38:29 +0800 Subject: [PATCH 2/2] Revert to Odoo API key * This eliminates the need to create an additional unsecure object in the database. * Using the API token also enables users with 2FA to authenticate against Odoo server * Added ACL for the Rest API view to allow access to only certain users * Removed Postman sample as the new methods has been simplified * Update the module info to reflect changes above --- .../Odoo REST Api.postman_collection.json | 257 --------------- .../Odoo REST Api.postman_collection.zip | Bin 1060 -> 0 bytes rest_api_odoo/__manifest__.py | 2 +- rest_api_odoo/controllers/rest_api_odoo.py | 98 +++--- rest_api_odoo/models/__init__.py | 1 - rest_api_odoo/models/res_users.py | 44 --- .../security/res_api_odoo_security.xml | 32 ++ .../assets/screenshots/rest_api_2.png | Bin 97704 -> 118405 bytes rest_api_odoo/static/description/index.html | 308 ++++++------------ rest_api_odoo/views/res_users_views.xml | 18 - 10 files changed, 176 insertions(+), 584 deletions(-) delete mode 100644 rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json delete mode 100644 rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.zip delete mode 100644 rest_api_odoo/models/res_users.py create mode 100644 rest_api_odoo/security/res_api_odoo_security.xml delete mode 100644 rest_api_odoo/views/res_users_views.xml diff --git a/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json b/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json deleted file mode 100644 index f474d53117..0000000000 --- a/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "info": { - "_postman_id": "83d9071d-626d-41ed-9800-78570ed11a7c", - "name": "Odoo REST Api", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "28148668" - }, - "item": [ - { - "name": "Authentication", - "request": { - "method": "GET", - "header": [ - { - "key": "db", - "value": "sep_db", - "type": "text" - }, - { - "key": "login", - "value": "123", - "type": "text" - }, - { - "key": "password", - "value": "123", - "type": "text" - }, - { - "key": "", - "value": "", - "type": "text", - "disabled": true - } - ], - "url": { - "raw": "http://cybrosys:8016/odoo_connect", - "protocol": "http", - "host": [ - "cybrosys" - ], - "port": "8016", - "path": [ - "odoo_connect" - ] - } - }, - "response": [] - }, - { - "name": "GET records", - "protocolProfileBehavior": { - "disableBodyPruning": true - }, - "request": { - "method": "GET", - "header": [ - { - "key": "login", - "value": "123", - "type": "text" - }, - { - "key": "password", - "value": "123", - "type": "text" - }, - { - "key": "api-key", - "value": "4314c30b-994e-435d-a493-50cb0d33e99d", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"fields\": [\"name\",\"product_id\"]\n \n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "http://cybrosys:8016/send_request?model=mrp.production&Id=10", - "protocol": "http", - "host": [ - "cybrosys" - ], - "port": "8016", - "path": [ - "send_request" - ], - "query": [ - { - "key": "model", - "value": "mrp.production" - }, - { - "key": "Id", - "value": "10" - } - ] - } - }, - "response": [] - }, - { - "name": "Create Records", - "request": { - "method": "POST", - "header": [ - { - "key": "login", - "value": "123", - "type": "text" - }, - { - "key": "password", - "value": "123", - "type": "text" - }, - { - "key": "api_key", - "value": "4314c30b-994e-435d-a493-50cb0d33e99d", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"fields\" :[\"name\",\"phone\"] ,\n \"values\": {\"name\": \"abc\",\n \"phone\":\"55962441552\"\n }\n\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "http://cybrosys:8016/send_request?model=res.partner", - "protocol": "http", - "host": [ - "cybrosys" - ], - "port": "8016", - "path": [ - "send_request" - ], - "query": [ - { - "key": "model", - "value": "res.partner" - } - ] - } - }, - "response": [] - }, - { - "name": "Update Records", - "request": { - "method": "PUT", - "header": [ - { - "key": "login", - "value": "123", - "type": "text" - }, - { - "key": "password", - "value": "123", - "type": "text" - }, - { - "key": "api-key", - "value": "d52cd3de-ad4c-49ab-a5cb-727940b8117a", - "type": "text" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"fields\" :[\"name\",\"phone\"] ,\n \"values\": {\"name\": \"abc\",\n \"phone\":\"55962441552\"\n }\n\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "http://cybrosys:8016/send_request?model=res.partner&Id=48", - "protocol": "http", - "host": [ - "cybrosys" - ], - "port": "8016", - "path": [ - "send_request" - ], - "query": [ - { - "key": "model", - "value": "res.partner" - }, - { - "key": "Id", - "value": "48" - } - ] - } - }, - "response": [] - }, - { - "name": "Delete Records", - "request": { - "method": "DELETE", - "header": [ - { - "key": "login", - "value": "123", - "type": "text" - }, - { - "key": "password", - "value": "123", - "type": "text" - }, - { - "key": "api-key", - "value": "d52cd3de-ad4c-49ab-a5cb-727940b8117a", - "type": "text" - } - ], - "url": { - "raw": "http://cybrosys:8016/send_request?model=res.partner&Id=48", - "protocol": "http", - "host": [ - "cybrosys" - ], - "port": "8016", - "path": [ - "send_request" - ], - "query": [ - { - "key": "model", - "value": "res.partner" - }, - { - "key": "Id", - "value": "48" - } - ] - } - }, - "response": [] - } - ] -} \ No newline at end of file diff --git a/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.zip b/rest_api_odoo/Postman Collections/Odoo REST Api.postman_collection.zip deleted file mode 100644 index d2a8392f5efb9e7a7d6ad72c5898e189d50fee9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1060 zcmWIWW@Zs#-~d8}WYus6C`cD#U{GaHVDL}L&sPX?4GvLoEXdR=$S*F*P0Wi=&dGVAUp-yvc%n0QlJ1R}Z@0K={I4x5aLUM3)!I@P`q|0i`44OH`uitWEq43(y>Q4%6 z+$#QmT3Sl<)uxBveQXoEJ7UfP)(PiYKF{f8Z{E7p-aTgN>*FbgKaO(99Z@+Qa3=U; zRr>d}`)+Rfl6pj{xJ|Ce$#T)EfZN++>Mg!}?F;*s;xD7y^4IOiseNW&WyNhAXDm0I z&>=cwS@4(T4n3HO-Vc-1{Z$S*{aTQ>kXx z(Y*#okL~(b?3H(!XYK-)J4;*gZme{xaC-1*j+n*K&({o2I|u!;U!ZUz*m<9wYl-aX zURh(KrUR~RuPZJvC+V(MA|t}`;pvp@(&@8D%vNUI`L%voI>UKxgY}=ntph7h zmEC=MFDr@T@Jyw1;Wy*Uwk)WOzpCB!tB9>%=d(Qb+Ssef42erlhkZzM>5>f&XaxBuY6iy|Lv;^9e2+&K8?8W zUOA_w%${A~YboD%;jdrWFMlzPPknLIutdR#p(Ob*uR{uheqYZ-Tdo-6PrBJGcBX&7 z&6;+<>iYi;r|x}re*dfe2Iq1O=ihHyE}!f_dG$%L?wkE$cA+0y4&^Ut>f_M*&lKRz z&Y`_p*FgiAaX=X`z?+dtgc*@Jk>x;{69%?4f>>0^ssY}tY#_rJfv^}z&jvb$fdK&Y ClE#Vv diff --git a/rest_api_odoo/__manifest__.py b/rest_api_odoo/__manifest__.py index af3c233884..e8c576f8e1 100644 --- a/rest_api_odoo/__manifest__.py +++ b/rest_api_odoo/__manifest__.py @@ -34,7 +34,7 @@ "depends": ['base', 'web'], "data": [ 'security/ir.model.access.csv', - 'views/res_users_views.xml', + 'security/res_api_odoo_security.xml', 'views/connection_api_views.xml' ], 'images': ['static/description/banner.jpg'], diff --git a/rest_api_odoo/controllers/rest_api_odoo.py b/rest_api_odoo/controllers/rest_api_odoo.py index 23339e1a64..60ca8dfbf2 100644 --- a/rest_api_odoo/controllers/rest_api_odoo.py +++ b/rest_api_odoo/controllers/rest_api_odoo.py @@ -24,27 +24,43 @@ import logging from datetime import datetime -from odoo import http +from odoo import http, models from odoo.http import request, Response from ast import literal_eval _logger = logging.getLogger(__name__) -class RestApi(http.Controller): - """This is a controller which is used to generate responses based on the - api requests""" +class IrHttp(models.AbstractModel): + """This model is used to authenticate the api-key when sending a request""" + _inherit = "ir.http" - def auth_api_key(self, api_key): + @classmethod + def _auth_method_rest_api(cls): """This function is used to authenticate the api-key when sending a request""" - user_id = request.env["res.users"].search([("api_key", "=", api_key)]) - if api_key is not None and user_id: - return Response(json.dumps({"message": "Authorized"}), status=200) - elif not user_id: - return Response(json.dumps({"message": "Invalid API Key"}), status=401) - return Response(json.dumps({"message": "No API Key Provided"}), status=400) + try: + api_key = request.httprequest.headers.get("Authorization").lstrip("Bearer ") + if not api_key: + raise PermissionError("Invalid API key provided.") + + user_id = request.env["res.users.apikeys"]._check_credentials( + scope="rpc", key=api_key + ) + request.update_env(user_id) + except Exception as e: + _logger.error(e) + return Response( + json.dumps({"message": e.args[0]}), + status=401, + content_type="application/json", + ) + + +class RestApi(http.Controller): + """This is a controller which is used to generate responses based on the + api requests""" def simplest_type(self, input): """Try cast input into native Python class, otherwise return as string""" @@ -123,7 +139,8 @@ def generate_response(self, method, **query): ) return Response( - json.dumps({"records": self.sanitize_records(partner_records)}) + json.dumps({"records": self.sanitize_records(partner_records)}), + content_type="application/json", ) if method == "POST": if not option.is_post: @@ -139,6 +156,7 @@ def generate_response(self, method, **query): return Response( json.dumps({"new_record": self.sanitize_records(partner_records)}), status=201, + content_type="application/json", ) if method == "PUT": if not option.is_put: @@ -162,7 +180,8 @@ def generate_response(self, method, **query): return Response( json.dumps( {"updated_record": self.sanitize_records(partner_records)} - ) + ), + content_type="application/json", ) if method == "DELETE": if not option.is_delete: @@ -188,12 +207,17 @@ def generate_response(self, method, **query): } ), status=202, + content_type="application/json", ) # If not using any method above, simply return an error raise NotImplementedError() except ValueError as e: - return Response(json.dumps({"message": e.args[0]}), status=403) + return Response( + json.dumps({"message": e.args[0]}), + status=403, + content_type="application/json", + ) except NotImplementedError as e: return Response( json.dumps( @@ -202,16 +226,20 @@ def generate_response(self, method, **query): } ), status=405, + content_type="application/json", ) - except Exception: + except Exception as e: + _logger.error(e) return Response( - json.dumps({"message": "Internal server error"}), status=500 + json.dumps({"message": f"Internal server error. {e.args[0]}"}), + status=500, + content_type="application/json", ) @http.route( ["/send_request"], type="http", - auth="none", + auth="rest_api", methods=["GET", "POST", "PUT", "DELETE"], csrf=False, ) @@ -221,12 +249,7 @@ def fetch_data(self, **kw): generate the result""" http_method = request.httprequest.method - api_key = request.httprequest.headers.get("api-key") - auth_api = self.auth_api_key(api_key) model = kw.pop("model") - username = request.httprequest.headers.get("login") - password = request.httprequest.headers.get("password") - request.session.authenticate(request.session.db, username, password) model_id = request.env["ir.model"].search([("model", "=", model)]) if not model_id: return Response( @@ -236,34 +259,7 @@ def fetch_data(self, **kw): } ), status=403, + content_type="application/json", ) - if auth_api.status_code == 200: - result = self.generate_response(http_method, model=model_id.id, **kw) - return result - else: - return auth_api - - @http.route( - ["/odoo_connect"], type="http", auth="none", csrf=False, methods=["GET"] - ) - def odoo_connect(self, **kw): - """This is the controller which initializes the api transaction by - generating the api-key for specific user and database""" - - username = request.httprequest.headers.get("login") - password = request.httprequest.headers.get("password") - db = request.httprequest.headers.get("db") - try: - request.session.update(http.get_default_session(), db=db) - auth = request.session.authenticate(request.session.db, username, password) - user = request.env["res.users"].browse(auth) - api_key = request.env.user.generate_api(username) - datas = json.dumps( - {"Status": "auth successful", "User": user.name, "api-key": api_key} - ) - return Response(datas) - except Exception: - return Response( - json.dumps({"message": "wrong login credentials"}), status=401 - ) + return self.generate_response(http_method, model=model_id.id, **kw) \ No newline at end of file diff --git a/rest_api_odoo/models/__init__.py b/rest_api_odoo/models/__init__.py index 63f0adaa46..e1750d6e91 100644 --- a/rest_api_odoo/models/__init__.py +++ b/rest_api_odoo/models/__init__.py @@ -20,4 +20,3 @@ # ############################################################################# from . import connection_api -from . import res_users diff --git a/rest_api_odoo/models/res_users.py b/rest_api_odoo/models/res_users.py deleted file mode 100644 index acfcf0ebcc..0000000000 --- a/rest_api_odoo/models/res_users.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding:utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2024-TODAY Cybrosys Technologies() -# Author: Sruthi Pavithran (odoo@cybrosys.com) -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -import uuid -from odoo import fields, models - - -class ResUsers(models.Model): - """This class is used to inherit users and add api key generation""" - _inherit = 'res.users' - - api_key = fields.Char(string="API Key", readonly=True, - help="Api key for connecting with the " - "Database.The key will be " - "generated when authenticating " - "rest api.") - - def generate_api(self, username): - """This function is used to generate api-key for each user""" - users = self.env['res.users'].sudo().search([('login', '=', username)]) - if not users.api_key: - users.api_key = str(uuid.uuid4()) - key = users.api_key - else: - key = users.api_key - return key diff --git a/rest_api_odoo/security/res_api_odoo_security.xml b/rest_api_odoo/security/res_api_odoo_security.xml new file mode 100644 index 0000000000..545fd51322 --- /dev/null +++ b/rest_api_odoo/security/res_api_odoo_security.xml @@ -0,0 +1,32 @@ + + + + + + REST API + Helps you manage your REST API records. + 17 + + + + Manager + + + + + + + + + + All REST APIs + + [(1,'=',1)] + + + + + \ No newline at end of file diff --git a/rest_api_odoo/static/description/assets/screenshots/rest_api_2.png b/rest_api_odoo/static/description/assets/screenshots/rest_api_2.png index 45063358eb7a5a4de72518a97f228bc6b1196cfe..94edbd0e01b839ccbd3624e71359ad0e6b5bce94 100644 GIT binary patch literal 118405 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�(!P&yi-KINh*6uw+!AAy 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�IOOc6Rog=mIDFXFF_>p3qd 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%0D@HO_anBEwAw1sH-;vbR0KFih85P1ud3pO=>I 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 b>$WLTg{(1JzRMlt{Tj;1+_3nJ^Uc2lhXp{{ literal 97704 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

- Odoo rest API

+ Odoo Rest API

The odoo Rest API module allow us to connect to database @@ -64,27 +64,6 @@

-
-
-
- -
-
-

- Api Key Generation

-

This module - Api key generation using database - authentication. -

-
-
-
- -
-
- -
-

-
    -
  • First of all, we have to add a new - parameter in odoo conf. - file. -
  • -
  • server_wide_modules = web, base, - rest_api_odoo
    - - This will allow us to send request - to - server without - selecting database first.
    - - Incase - if you have to - uninstall the module , you have to - remove this parameter. -
    - Next we can install the - module. -
  • -
  • After installing the Rest api app we - can - see a new api key - field in users. -
  • - - Next we have to generate the api-key - for - the current - user.
    -
  • You can import the postman - collections - provided in the app - folder for authentication and - interacting with database in - various methods. -
  • -
+ Installation

+
+
    +
  • First of all, we have to add a new + parameter in the odoo.conf + file. +
  • +
  • server_wide_modules = web, base, + rest_api_odoo
    +
      +
    • + This will allow us to send request to + server without + selecting database first. +
    • +
    • + Incase if you have to + uninstall the module , you have to + remove this parameter. +
    • +
    • + Next we can install the module. +
    • +
    +
  • +
  • After installing the Rest api app we + can + see a new api key + field in users. +
      +
    • + Next we have to generate the API key + for the current user. +
    • +
    +
  • +
+
+

+ Generate API Key +

-

-
    -
  • We have attached Postman - collections through which - you can - authenticate rest api. -
  • -
  • First, extract the zip file. - Then, you will obtain the - JSON-format - file, which you can directly import - into - POSTMAN.
  • -
  • The url format will be like this - - http://localhost:8017/odoo_connect - Replace 'localhost:8016' with your - localhost port number. -
  • -
  • You have to provide database name, - username and password - through the headers while sending - request. -
  • -
  • If the authentication is successful - , an - api key will be - generated for the current user. -
  • -
  • This key will be used when sending - api - requests to - database. -
  • -
  • The response will be like this - - {"Status": "auth - successful", "User": "Mitchell - Admin", - "api-key": - "66c2ebab-d4dc-42f0-87d0-d1646e887569"}. -
  • -
-

+
    +
  • Next you have to generate the API key under My Profile > Account Security.
  • +
  • Set the name of the API key according to your needs.
  • +
@@ -313,6 +250,10 @@
+

+ Create API Records +

@@ -328,13 +269,11 @@ height="auto">
-

    -
  • After rest api authentication, we +
  • After Rest API authentication, we can create records in the - rest api app. + Rest API app.
  • Here we can choose the model, and also @@ -346,7 +285,6 @@ records.
-

@@ -358,51 +296,29 @@

Get Records

- - - -
-
-
    -
  • You can send GET request to retrieve - data from the +
  • You can send GET request to retrieve data from the database.
  • -
  • The postman collection has been provided - with--> - app files for - sending request from postman. -
  • -
  • You have to provide username, password - and api - key through - the header. +
  • You have to provide the API key in the header: Authorization: Bearer {API_KEY} + where {API_KEY} should be replaced with the actual API key.
  • -
  • Model can be passed as argument as the - technical - name , and - also if you want - specific record you can provide the id - as well, +
  • Model can be passed as argument as the technical name, and + also if you want to get a specific record you can provide any + of the related fields to the module as well. +
  • +
  • The format for GET method will be like this - http://cybrosys:8016/send_request?model=res.partner&id=10. +
  • +
  • We can specify the fields inside the JSON data, and it will + be like this - {"fields": ["name", "email"]}. + If no fields are passed , it will returns just the record's ID. + To get all of the fields, set the fields to wildcard - {"fields": ["*"]}. + Pagination can also be used by adding {"limit": 10, "offset": 0} + to the query parameter above.
  • -
  • The format for GET method will be like - this - http://localhost:8016/send_request?model=res.partner&Id=10. -
  • -
  • We can specify the fields inside the - JSON data, - and it will - be like this - {"fields": ["name", - "email"]}.
  • -
  • This is the format of api response - {"records": - [{"id": - 10, "email": - "deco.addict82@example.com", - "name": "Deco - Addict"}]}. +
  • This is the format of API response - {"records": [{"id": + 10, "email": "deco.addict82@example.com", "name": "Deco + Addict"}]}.
@@ -416,27 +332,16 @@

- Create Records

-
-
-
-
-
-
-

+ Create Record +

    -
  • Using POST method , you can create - new records - in the +
  • Using POST method , you can create new records in the database.
  • Just make sure you enabled POST method for the model record - in rest api app , otherwise you will + in Rest API app , otherwise you will get 'method not allowed' message. @@ -453,41 +358,29 @@
  • The format for sending POST request will be like - this - http://localhost:8016/send_request?model=res.partner. + this - http://localhost:8016/send_request?model=res.partner.
  • This is the format for JSON data - - { + { "fields" :["name", "phone"] , "values": {"name": "abc", "phone":"55962441552" - } }. + } }.
  • Make sure the data entered in correct format otherwise you - will get 'Invalid JSON data' - message. + will get Invalid JSON data' + message.
  • Response will be in this format - - {"New + {"New resource": [{"id": 51, "name": "abc", "phone": - "55962441552"}]}. + "55962441552"}]}.
- -
-
-
-
-
-
-

- Update Records

@@ -498,10 +391,12 @@

+ Update Record +

  • Updation of records in the database can be done - with PUT + with PUT method.
  • You have to provide the model and @@ -521,7 +416,7 @@
  • The format for sending PUT request will be like - this - http://localhost:8016/send_request?model=res.partner&Id=46. + this - http://localhost:8016/send_request?model=res.partner&id=46.
  • Here too you have to provide the JSON data @@ -529,23 +424,11 @@ updates will be done.
  • The response format will be like - this - {"Updated + this - {"Updated resource": [{"id": 46, "email": "abc@example.com", "name": - "Toni"}]}.
  • + "Toni"}]}.
- -
-
- -
-
-
-

- Delete Records

@@ -556,10 +439,12 @@

+ Delete Record +

  • Database records can be deleted by sending - DELETE method + DELETE method request.
  • For the deletion we have to provide @@ -570,22 +455,21 @@
  • Make sure you have permission to delete files for the - selected model in the rest api + selected model in the Rest API record.
  • The delete request format will be like this - - http://localhost:8016/send_request?model=res.partner&Id=46. + http://localhost:8016/send_request?model=res.partner&Id=46.
  • The response after successful deletion will be - - + - {"Resource deleted": [{"id": 46, "email": "abc@example.com", - "name": "Toni"}]}.
  • + "name": "Toni"}]}.
-
@@ -599,7 +483,7 @@ src="assets/misc/star (1) 2.svg" alt="" width="16px">We can create - records in the rest api app. + records in the Rest API app.
  • diff --git a/rest_api_odoo/views/res_users_views.xml b/rest_api_odoo/views/res_users_views.xml deleted file mode 100644 index c6a59b1ef3..0000000000 --- a/rest_api_odoo/views/res_users_views.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - view.users.form.inherit.rest.api.odoo - - res.users - - - - - - - - - - -