added access control to equipment in api and admin

pull/92/head
13621160019@163.com 2021-12-06 23:02:27 +08:00
parent 9b417d0648
commit 15cc27ac18
12 changed files with 295 additions and 67 deletions

View File

@ -124,7 +124,8 @@ app.controller('EquipmentParameterController', function(
modifiedEquipmentParameter.denominator_meter_uuid = modifiedEquipmentParameter.denominator_meter.uuid;
}
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EquipmentParameterService.editEquipmentParameter($scope.currentEquipment.id, modifiedEquipmentParameter, headers, function (response) {
EquipmentParameterService.editEquipmentParameter($scope.currentEquipment.id,
modifiedEquipmentParameter, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 200) {
toaster.pop({
type: "success",
@ -162,7 +163,8 @@ app.controller('EquipmentParameterController', function(
function(isConfirm) {
if (isConfirm) {
let headers = { "User-UUID": $scope.cur_user.uuid, "Token": $scope.cur_user.token };
EquipmentParameterService.deleteEquipmentParameter($scope.currentEquipment.id, equipmentparameter.id, headers, function (response) {
EquipmentParameterService.deleteEquipmentParameter($scope.currentEquipment.id,
equipmentparameter.id, headers, function (response) {
if (angular.isDefined(response.status) && response.status === 204) {
toaster.pop({
type: "success",
@ -181,7 +183,8 @@ app.controller('EquipmentParameterController', function(
}
});
}
});
}
);
};
$scope.colorMeterType = function(type) {

2
admin/nginx.conf vendored
View File

@ -46,7 +46,7 @@ http {
}
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_pass http://192.168.1.6:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;

View File

@ -2886,14 +2886,10 @@
"name": "Equipment",
"item": [
{
"name": "POST Create New Equipment",
"name": "GET All Equipments",
"request": {
"method": "POST",
"method": "GET",
"header": [],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"MyEMS Chiller\", \"is_input_counted\":true, \"is_output_counted\":false, \"cost_center_id\":1, \"description\":\"equipment description\"}}"
},
"url": {
"raw": "{{base_url}}/equipments",
"host": [
@ -2907,10 +2903,27 @@
"response": []
},
{
"name": "GET All Equipments",
"name": "POST Create New Equipment",
"request": {
"method": "GET",
"header": [],
"method": "POST",
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"MyEMS Chiller\", \"is_input_counted\":true, \"is_output_counted\":false, \"cost_center_id\":1, \"description\":\"equipment description\"}}"
},
"url": {
"raw": "{{base_url}}/equipments",
"host": [
@ -2929,13 +2942,13 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/equipments/3",
"raw": "{{base_url}}/equipments/1",
"host": [
"{{base_url}}"
],
"path": [
"equipments",
"3"
"1"
]
}
},
@ -2945,19 +2958,32 @@
"name": "PUT Update an Equipment by ID",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"MyEMS Chiller\", \"is_input_counted\":true, \"is_output_counted\":true, \"cost_center_id\":1, \"description\":\"equipment description\"}}"
"raw": "{\"data\":{\"name\":\"new MyEMS Chiller\", \"is_input_counted\":true, \"is_output_counted\":true, \"cost_center_id\":1, \"description\":\"equipment description\"}}"
},
"url": {
"raw": "{{base_url}}/equipments/3",
"raw": "{{base_url}}/equipments/1",
"host": [
"{{base_url}}"
],
"path": [
"equipments",
"3"
"1"
]
}
},
@ -2967,7 +2993,20 @@
"name": "POST Clone an Equipment by ID",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{}}"
@ -2989,15 +3028,28 @@
"name": "DELETE an Equipment by ID",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/equipments/2",
"raw": "{{base_url}}/equipments/4",
"host": [
"{{base_url}}"
],
"path": [
"equipments",
"2"
"4"
]
}
},
@ -3007,10 +3059,23 @@
"name": "POST Bind a Meter to an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"meter_id\":1, \"is_output\":false}}"
"raw": "{\"data\":{\"meter_id\":3, \"is_output\":false}}"
},
"url": {
"raw": "{{base_url}}/equipments/1/meters",
@ -3045,11 +3110,57 @@
},
"response": []
},
{
"name": "DELETE a Meter from an Equipment",
"request": {
"method": "DELETE",
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/equipments/1/meters/1",
"host": [
"{{base_url}}"
],
"path": [
"equipments",
"1",
"meters",
"1"
]
}
},
"response": []
},
{
"name": "POST Bind a Offline Meter to an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"offline_meter_id\":1, \"is_output\":false}}"
@ -3068,26 +3179,6 @@
},
"response": []
},
{
"name": "DELETE a Meter from an Equipment",
"request": {
"method": "DELETE",
"header": [],
"url": {
"raw": "{{base_url}}/equipments/1/meters/1",
"host": [
"{{base_url}}"
],
"path": [
"equipments",
"1",
"meters",
"1"
]
}
},
"response": []
},
{
"name": "GET All Offline Meters of an Equipment",
"request": {
@ -3111,7 +3202,20 @@
"name": "DELETE an Offline Meter from an Equipment",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/equipments/1/offlinemeters/1",
"host": [
@ -3152,7 +3256,7 @@
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/equipments/1/parameters/1",
"raw": "{{base_url}}/equipments/1/parameters/2",
"host": [
"{{base_url}}"
],
@ -3160,7 +3264,7 @@
"equipments",
"1",
"parameters",
"1"
"2"
]
}
},
@ -3170,7 +3274,20 @@
"name": "POST Create a point Parameter for an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test parameter\", \"parameter_type\":\"point\", \"constant\":null, \"point_id\":1, \"numerator_meter_uuid\":null, \"denominator_meter_uuid\":null}}"
@ -3194,7 +3311,20 @@
"name": "PUT Update a point Parameter for an Equipment",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test parameter\", \"parameter_type\":\"point\", \"constant\":null, \"point_id\":3, \"numerator_meter_uuid\":null, \"denominator_meter_uuid\":null}}"
@ -3219,7 +3349,20 @@
"name": "POST Create a constant Parameter for an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test parameter\", \"parameter_type\":\"constant\", \"constant\":\"test constant\", \"point_id\":null, \"numerator_meter_uuid\":null, \"denominator_meter_uuid\":null}}"
@ -3243,7 +3386,20 @@
"name": "PUT Update a constant Parameter for an Equipment",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test parameter1\", \"parameter_type\":\"constant\", \"constant\":\"test constant1\", \"point_id\":null, \"numerator_meter_uuid\":null, \"denominator_meter_uuid\":null}}"
@ -3268,7 +3424,20 @@
"name": "POST Create a fraction Parameter for an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test parameter\", \"parameter_type\":\"fraction\", \"constant\":null, \"point_id\":null, \"numerator_meter_uuid\":\"89ff5118-d0c2-4dd8-8098-a8698189b2ea\", \"denominator_meter_uuid\":\"5ca62d2a-908e-40c5-a6b5-a8e436d60db4\"}}"
@ -3292,7 +3461,20 @@
"name": "PUT Update a fraction Parameter for an Equipment",
"request": {
"method": "PUT",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"name\":\"test fraction parameter\", \"parameter_type\":\"fraction\", \"constant\":null, \"point_id\":null, \"numerator_meter_uuid\":\"89ff5118-d0c2-4dd8-8098-a8698189b2ea\", \"denominator_meter_uuid\":\"5ca62d2a-908e-40c5-a6b5-a8e436d60db4\"}}"
@ -3317,7 +3499,20 @@
"name": "DELETE a Parameter from an Equipment",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/equipments/1/parameters/16",
"host": [
@ -3337,7 +3532,20 @@
"name": "POST Bind a Virtual Meter to an Equipment",
"request": {
"method": "POST",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"body": {
"mode": "raw",
"raw": "{\"data\":{\"virtual_meter_id\":1, \"is_output\":false}}"
@ -3379,7 +3587,20 @@
"name": "DELETE a Virtual Meter from an Equipment",
"request": {
"method": "DELETE",
"header": [],
"header": [
{
"key": "User-UUID",
"value": "dcdb67d1-6116-4987-916f-6fc6cf2bc0e4",
"type": "text",
"description": "Any admin users' UUID"
},
{
"key": "Token",
"value": "96df45542155d4fd65c8234a98fe076232dc09e89238fc2ae3f47cae78960f941e789c72c1ff11b2ba2c2b937631661287150cb1d753b011b7a5500524445b01",
"type": "text",
"description": "Login to get a valid token"
}
],
"url": {
"raw": "{{base_url}}/equipments/1/virtualmeters/1",
"host": [

View File

@ -3,7 +3,7 @@ import simplejson as json
import mysql.connector
import config
import uuid
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class CostCenterCollection:

View File

@ -1481,6 +1481,7 @@ class EquipmentOfflineMeterCollection:
@user_logger
def on_post(req, resp, id_):
"""Handles POST requests"""
access_control(req)
try:
raw_json = req.stream.read().decode('utf-8')
except Exception as ex:
@ -1561,6 +1562,7 @@ class EquipmentOfflineMeterItem:
@staticmethod
@user_logger
def on_delete(req, resp, id_, mid):
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_EQUIPMENT_ID')
@ -1671,6 +1673,7 @@ class EquipmentVirtualMeterCollection:
@user_logger
def on_post(req, resp, id_):
"""Handles POST requests"""
access_control(req)
try:
raw_json = req.stream.read().decode('utf-8')
except Exception as ex:
@ -1751,6 +1754,7 @@ class EquipmentVirtualMeterItem:
@staticmethod
@user_logger
def on_delete(req, resp, id_, mid):
access_control(req)
if not id_.isdigit() or int(id_) <= 0:
raise falcon.HTTPError(falcon.HTTP_400, title='API.BAD_REQUEST',
description='API.INVALID_EQUIPMENT_ID')

View File

@ -3,7 +3,7 @@ import simplejson as json
import mysql.connector
import config
import uuid
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class OfflineMeterCollection:

View File

@ -1,10 +1,10 @@
import falcon
import json
import simplejson as json
import mysql.connector
import uuid
from datetime import datetime, timezone, timedelta
import config
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class RuleCollection:

View File

@ -6,7 +6,7 @@ import uuid
from datetime import datetime
from anytree import AnyNode
from anytree.exporter import JsonExporter
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class SpaceCollection:

View File

@ -4,7 +4,7 @@ import mysql.connector
import config
import uuid
from datetime import datetime, timedelta, timezone
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class TariffCollection:

View File

@ -3,7 +3,7 @@ import simplejson as json
import mysql.connector
import config
import uuid
from core.useractivity import user_logger
from core.useractivity import user_logger, access_control
class VirtualMeterCollection:

2
web/nginx.conf vendored
View File

@ -47,7 +47,7 @@ http {
}
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_pass http://192.168.1.6:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;