Commit e206b9bb authored by Cristiano Urban's avatar Cristiano Urban
Browse files

Added methods 'getGroupRead()' and 'getGroupWrite()'.

parent db8eb89c
Loading
Loading
Loading
Loading
+42 −0
Original line number Diff line number Diff line
@@ -86,6 +86,48 @@ class DbConnector(object):
                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."""
        with self.getConnection() as conn: