From e206b9bb6a39e09e82463941726956a972ea3b78 Mon Sep 17 00:00:00 2001 From: Cristiano Urban Date: Thu, 24 Jun 2021 08:56:07 +0200 Subject: [PATCH] Added methods 'getGroupRead()' and 'getGroupWrite()'. Signed-off-by: Cristiano Urban --- transfer_service/db_connector.py | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/transfer_service/db_connector.py b/transfer_service/db_connector.py index cbe8a3d..a47254c 100644 --- a/transfer_service/db_connector.py +++ b/transfer_service/db_connector.py @@ -85,6 +85,48 @@ class DbConnector(object): conn.rollback() print(e) return result[0]["creator_id"] + + def getGroupRead(self, vospacePath): + """Returns the 'group_read' for a given VOSpace path representing a node.""" + with self.getConnection() as conn: + try: + cursor = conn.cursor(cursor_factory = RealDictCursor) + cursor.execute(""" + SELECT unnest(group_read) as group_read + FROM node_vos_path nvp + JOIN node n ON nvp.node_id = n.node_id + WHERE vos_path = %s; + """, + (vospacePath,)) + result = cursor.fetchall() + except Exception as e: + if not conn.closed: + conn.rollback() + print(e) + for i in range(0, len(result)): + result[i]["group_read"] = result[i]["group_read"].split("people.")[-1].replace("\\", "") + return result + + def getGroupWrite(self, vospacePath): + """Returns the 'group_write' for a given VOSpace path representing a node.""" + with self.getConnection() as conn: + try: + cursor = conn.cursor(cursor_factory = RealDictCursor) + cursor.execute(""" + SELECT unnest(group_write) as group_write + FROM node_vos_path nvp + JOIN node n ON nvp.node_id = n.node_id + WHERE vos_path = %s; + """, + (vospacePath,)) + result = cursor.fetchall() + except Exception as e: + if not conn.closed: + conn.rollback() + print(e) + for i in range(0, len(result)): + result[i]["group_write"] = result[i]["group_write"].split("people.")[-1].replace("\\", "") + return result def getOSPath(self, vospacePath): """Returns a list containing full path, storage type and username for a VOSpace path.""" -- GitLab