From d870819080e0778da672a257f634c0d8b7960af5 Mon Sep 17 00:00:00 2001
From: Terrtia <or1994@hotmail.fr>
Date: Tue, 1 Oct 2019 11:47:33 +0200
Subject: [PATCH] chg: [registered sensor] remove registered sensors

---
 server/lib/Sensor.py                         | 14 ++++++++++++++
 server/web/Flask_server.py                   | 11 +++++++++++
 server/web/templates/registered_sensors.html |  6 ++++++
 3 files changed, 31 insertions(+)

diff --git a/server/lib/Sensor.py b/server/lib/Sensor.py
index c74b6a3..af83cd4 100755
--- a/server/lib/Sensor.py
+++ b/server/lib/Sensor.py
@@ -148,3 +148,17 @@ def delete_pending_sensor(req_dict):
 def _delete_pending_sensor(sensor_uuid):
     r_serv_db.srem('sensor_pending_registration', sensor_uuid)
     return ({'uuid': sensor_uuid}, 200)
+
+def delete_registered_sensor(req_dict):
+    sensor_uuid = req_dict.get('uuid', None)
+    if not is_valid_uuid_v4(sensor_uuid):
+        return ({"status": "error", "reason": "Invalid uuid"}, 400)
+    sensor_uuid = sensor_uuid.replace('-', '')
+    # sensor not registred
+    if not r_serv_db.sismember('registered_uuid', sensor_uuid):
+        return ({"status": "error", "reason": "Sensor not registered"}, 404)
+    return _delete_registered_sensor(sensor_uuid)
+
+def _delete_registered_sensor(sensor_uuid):
+    r_serv_db.srem('registered_uuid', sensor_uuid)
+    return ({'uuid': sensor_uuid}, 200)
diff --git a/server/web/Flask_server.py b/server/web/Flask_server.py
index 50eee84..43efd91 100755
--- a/server/web/Flask_server.py
+++ b/server/web/Flask_server.py
@@ -762,6 +762,17 @@ def delete_pending_sensor():
     else:
         return jsonify(res[0])
 
+@app.route('/server/delete_registered_sensor')
+@login_required
+@login_admin
+def delete_registered_sensor():
+    uuid_sensor = request.args.get('uuid')
+    res = Sensor.delete_registered_sensor({'uuid': uuid_sensor})
+    if res[1] == 200:
+        return redirect(url_for('registered_sensor'))
+    else:
+        return jsonify(res[0])
+
 @app.route('/uuid_change_stream_max_size')
 @login_required
 @login_user_basic
diff --git a/server/web/templates/registered_sensors.html b/server/web/templates/registered_sensors.html
index f97bb89..cf20aae 100644
--- a/server/web/templates/registered_sensors.html
+++ b/server/web/templates/registered_sensors.html
@@ -38,6 +38,7 @@
 					<th class="bg-info text-white">last seen</th>
 					<th class="bg-info text-white">types</th>
 					<th class="bg-secondary text-white">Status</th>
+					<th class="bg-secondary text-white"></th>
 				</tr>
 			</thead>
 			<tbody>
@@ -85,6 +86,11 @@
 									<i class="fa fa-check-circle"></i> Connected
 							{% endif %}
 						</td>
+						<td>
+							<a href="{{ url_for('delete_registered_sensor') }}?uuid={{row_uuid['uuid']}}">
+								<button type="button" class="btn btn-outline-danger"><i class="fa fa-trash"></i></button>
+							</a>
+						</td>
 					</tr>
 				{% endfor %}
 			</tbody>