Example #1
0
    def getAccessRequestsCreatedByTheUser(self, userName):

        logging.info("Inside getAccessRequestsCreatedByTheUser")

        accessRequestsOfTheUserList = ModelFactory.ModelFactory().getAccessRequestsOfTheUser(
            userName)
        return self.accessRequestsListFormatter(accessRequestsOfTheUserList)
Example #2
0
    def fetchUserAcessDataForFilesandFoldersInDictionaryFormat(self):

        logging.info("Inside fetchUserAcessDataForFilesandFoldersInDictionaryFormat")

        listOfFileObjects = ModelFactory.ModelFactory().listAllFileAccessDetails()
        listOfFileObjectsInDictionaryFormat = self.fileObjectsFormatToDictionaries(listOfFileObjects)
        return listOfFileObjectsInDictionaryFormat
Example #3
0
    def getListOfUsersAccessingOwnersFiles(self):

        logging.info("Inside getListOfUsersAccessingOwnersFiles")

        ownerName = self.request["param"].get('username')
        return PostgresReadTaskHandler.PostgresReadTaskHandler().getFilesInformationForSpecificUser(
            ownerName)
Example #4
0
    def getAccessRequestsCreatedByUser(self):

        logging.info("Inside getAccessRequestsCreatedByUser")

        username = self.request["param"].get('username')
        return PostgresReadTaskHandler.PostgresReadTaskHandler().getAccessRequestsCreatedByTheUser(
            username)
Example #5
0
    def getAccessRequestsToBeApprovedByOwnerOfTheFile(self):

        logging.info("Inside getAccessRequestsToBeApprovedByOwnerOfTheFile")

        ownerName = self.request["param"].get('owner')
        return PostgresReadTaskHandler.PostgresReadTaskHandler().getAccessRequestsForOwnerToApproval(
            ownerName)
Example #6
0
    def getAccessRequestsForOwnerToApproval(self, ownerName):

        logging.info("Inside getAccessRequestsForOwnerToApproval")

        accessRequestsOfTheOwnerList = ModelFactory.ModelFactory().getAccessRequestsOfTheOwner(
            ownerName)
        return self.accessRequestsListFormatter(accessRequestsOfTheOwnerList)
Example #7
0
    def fetchUserAcessDataForSingleFileOrFolderInDictionaryFormat(self, fileName):

        logging.info("Inside fetchUserAcessDataForSingleFileOrFolderInDictionaryFormat")

        fileObject = ModelFactory.ModelFactory().getAccessDetailOfFile(fileName)
        fileObjectInDictionaryFormat = self.fileObjectFormatToDictionary(fileObject)

        return fileObjectInDictionaryFormat
Example #8
0
    def accessDetailsForParticularFileUserFormatter(self, AccessDetailsForFile, fileUserRecord):

        logging.info("Inside accessDetailsForParticularFileUserFormatter")

        AccessDetailsForFile = AccessDetailsForFile.__dict__
        fileUserRecord["access"] = ""
        if AccessDetailsForFile["read"] == True: fileUserRecord["access"] = fileUserRecord["access"] + "read "
        if AccessDetailsForFile["write"] == True: fileUserRecord["access"] = fileUserRecord["access"] + "write "
        if AccessDetailsForFile["delete"] == True: fileUserRecord["access"] = fileUserRecord["access"] + "delete"
Example #9
0
    def accessRequestsListFormatter(self, accessRequestsList):

        logging.info("Inside accessRequestsListFormatter")

        accessRequestsOfTheUserOrOwnerFormattedList = []
        for eachAccessRequestObject in accessRequestsList:
            eachAccessRequestObject = eachAccessRequestObject.__dict__
            del eachAccessRequestObject["id"]
            del eachAccessRequestObject["_sa_instance_state"]
            accessRequestsOfTheUserOrOwnerFormattedList.append(eachAccessRequestObject)
        return accessRequestsOfTheUserOrOwnerFormattedList
Example #10
0
def fileOwnerApproveOrRejectAccessRequest(accessRequestToBeApprovedOrRejected):
    logging.info("Consumer: Inside fileOwnerApproveOrRejectAccessRequest")

    if accessRequestToBeApprovedOrRejected["status"] == "approve":
        del accessRequestToBeApprovedOrRejected["status"]
        PostgresWriteTaskHandler.PostgresWriteTaskHandler(
        ).approveAccessRequest(accessRequestToBeApprovedOrRejected)
    else:
        del accessRequestToBeApprovedOrRejected["status"]
        PostgresWriteTaskHandler.PostgresWriteTaskHandler(
        ).rejectAccessRequest(accessRequestToBeApprovedOrRejected)
    def deleteAccessRequestRecord(self, accessRequestToBeDeleted):

        logging.info("Inside deleteAccessRequestRecord")

        accessRequestObjectToBeDeleted = ModelFactory.ModelFactory().getAccessRequestObjectToBeDeletedOrApprovedOrRejected(
            accessRequestToBeDeleted)
        try:
            databaseInstance.session.delete(accessRequestObjectToBeDeleted)
            databaseInstance.session.commit()
            logging.info("Access Request has been successfully deleted")
        except:
            logging.warning("Failed to delete Access Request")
Example #12
0
    def FileOwnerApproveOrRejectAccessRequest(self):

        logging.info("Inside FileOwnerApproveOrRejectAccessRequest")

        data_to_placed_in_the_stream = self.request["data"]
        result = self.producer.send('access_management', key=self.request["task"], value=data_to_placed_in_the_stream)
        sleep(5)
        if (result.is_done):
            logging.debug("Approve or Reject Request is initiated")
            return ({"status": True})
        else:
            logging.warning("Approve or Reject Request is not initiated")
            return ({"status": False})
    def addUserToFileAccessingUserList(self, accessRequestToBeApproved):

        logging.info("Inside addUserToFileAccessingUserList")

        fileUserAccessObjectForGivenFileAndOwner = ModelFactory.ModelFactory().getFileAndItsAccessingUsersObjectForExistingFile(
            accessRequestToBeApproved)

        try:
            databaseInstance.session.add(fileUserAccessObjectForGivenFileAndOwner)
            databaseInstance.session.commit()
            logging.info("Access Request has been successfully added to the existing file")
        except:
            logging.warning("Access Request has not been successfully added to the existing file")
    def createAccessRequest(self, accessRequest):

        logging.info("Inside createAccessRequest")

        accessRequestObject = ModelFactory.ModelFactory().getAccessRequestObject()
        requestMappedAccessRequestObject = RequestToDatabaseObjectMapper.RequestToDatabaseObjectMapper().RequestMappedAccessRequestObject(
            accessRequestObject, accessRequest)

        try:
            databaseInstance.session.add(requestMappedAccessRequestObject)
            databaseInstance.session.commit()
            logging.info("Access Request has been successfully created")
        except:
            logging.warning("Failed to create Access Request")
    def rejectAccessRequest(self, accessRequestToBeRejected):

        logging.info("Inside rejectAccessRequest")

        accessRequestForWhichStatusHasToBeRejected = ModelFactory.ModelFactory().getAccessRequestObjectToBeDeletedOrApprovedOrRejected(
            accessRequestToBeRejected)
        if accessRequestForWhichStatusHasToBeRejected is not None and accessRequestForWhichStatusHasToBeRejected.statusOfRequest == "ongoing":
            accessRequestForWhichStatusHasToBeRejected.statusOfRequest = "rejected"
            try:
                databaseInstance.session.add(accessRequestForWhichStatusHasToBeRejected)
                databaseInstance.session.commit()
                logging.info("Access Request has been successfully rejected")
            except:
                logging.warning("Failed to reject Access Request")
Example #16
0
    def fileObjectFormatToDictionary(self, fileObject):

        logging.info("Inside fileObjectFormatToDictionary")

        fileDict = {}
        fileDict["file"] = fileObject.name
        fileDict["owner"] = self.getOwnerDetailsForFile(fileObject.ownerId)
        fileDict["accessingUsers"] = []
        for eachUser in fileObject.users:
            user = {}
            user["name"] = eachUser.user.name
            user["read"] = eachUser.accessGiven.__dict__["read"]
            user["write"] = eachUser.accessGiven.__dict__["write"]
            user["delete"] = eachUser.accessGiven.__dict__["delete"]
            fileDict["accessingUsers"].append(user)
        return fileDict
Example #17
0
    def getFilesInformationForSpecificUser(self, ownerName):

        logging.info("Inside getFilesInformationForSpecificUser")

        fileObjects = ModelFactory.ModelFactory().getFilesObjectForspecificUser(
            ownerName)
        filesOfTheUserAccessesByOthers = []
        for eachFileObject in fileObjects:
            fileUserRecord = {}
            fileUserRecord["file"] = eachFileObject.name
            for eachUser in eachFileObject.users:
                if (eachUser.user.name != ownerName):
                    fileUserRecord["name"] = eachUser.user.name
                    self.accessDetailsForParticularFileUserFormatter(eachUser.accessGiven, fileUserRecord)
                    filesOfTheUserAccessesByOthers.append(fileUserRecord)
        return filesOfTheUserAccessesByOthers
Example #18
0
    def fileObjectsFormatToDictionaries(self, listOfFileObjects):

        logging.info("Inside fileObjectsFormatToDictionaries")

        listOfFileObjectsInDictionaryFormat = []
        for eachFileObject in listOfFileObjects:
            eachFileDict = {}
            eachFileDict["file"] = eachFileObject.name
            eachFileDict["owner"] = self.getOwnerDetailsForFile(eachFileObject.ownerId)
            eachFileDict["accessingUsers"] = []
            for eachUser in eachFileObject.users:
                user = {}
                user["name"] = eachUser.user.name
                user["read"] = eachUser.accessGiven.__dict__["read"]
                user["write"] = eachUser.accessGiven.__dict__["write"]
                user["delete"] = eachUser.accessGiven.__dict__["delete"]
                eachFileDict["accessingUsers"].append(user)
            listOfFileObjectsInDictionaryFormat.append(eachFileDict)
        return listOfFileObjectsInDictionaryFormat
    def createUserAccessDetailForFile(self, accessDetailsToBeInserted):

        logging.info("Inside createUserAccessDetailForFile")

        numberOfAccessingUsers = len(accessDetailsToBeInserted["accessing_users"])
        newFileObject = ModelFactory.ModelFactory().getFileAndItsAccessingUsersObjectForNonExistingFile(
            numberOfAccessingUsers)

        mappedNewFileObject = RequestToDatabaseObjectMapper.RequestToDatabaseObjectMapper().userAccessDetailToCorrespondingObect(
            newFileObject, accessDetailsToBeInserted)

        try:
            databaseInstance.session.add(mappedNewFileObject)
            databaseInstance.session.commit()
            logging.info("Access Details for files have been created")
            return ({"status": True})
        except:
            logging.warning("Error in creating Access Details for files")
            return ({"status": False})
    def deleteAccessDetailForFiles(self, FilesForCorrespondingAccessRecordsToBeDeleted):

        logging.info("Inside deleteAccessDetailForFiles")

        resultOfDeleteOperation = []
        for eachFile in FilesForCorrespondingAccessRecordsToBeDeleted:
            fileObject = ModelFactory.ModelFactory().getAccessDetailOfFile(eachFile["Key"])
            try:
                databaseInstance.session.delete(fileObject)
                databaseInstance.session.commit()
                resultOfDeleteOperation.append(True)
            except:
                resultOfDeleteOperation.append(False)

        if False not in resultOfDeleteOperation:
            logging.info("Access Details for files have been deleted")
            return ({"status": True})
        else:
            logging.warning("Error in deleting Access Details for files")
            return ({"status": False})
Example #21
0
def deleteAccessRequestRecord(accessRequest):
    logging.info("Consumer: Inside deleteAccessRequestRecord")

    PostgresWriteTaskHandler.PostgresWriteTaskHandler(
    ).deleteAccessRequestRecord(accessRequest)
Example #22
0
def createAccessRequest(accessRequest):
    logging.info("Consumer: Inside createAccessRequest")

    PostgresWriteTaskHandler.PostgresWriteTaskHandler().createAccessRequest(
        accessRequest)
Example #23
0
    def addUserAccessDetailForFile(self):
        logging.info("Inside addUserAccessDetailForFile")

        accessRecordToBeInserted = self.request["data"]
        return PostgresWriteTaskHandler.PostgresWriteTaskHandler(
        ).createUserAccessDetailForFile(accessRecordToBeInserted)
Example #24
0
    def removeUserAccessDetailsForDeletedFiles(self):
        logging.info("Inside removeUserAccessDetailsForDeletedFiles")

        accessRecordsToBeDeleted = self.request["data"]
        return PostgresWriteTaskHandler.PostgresWriteTaskHandler(
        ).deleteAccessDetailForFiles(accessRecordsToBeDeleted["files"])
Example #25
0
    def fetchUserAcessDataForSingleFileOrFolder(self):
        logging.info("Inside fetchUserAcessDataForSingleFileOrFolder")

        fileName = self.request["param"].get('file')
        return PostgresReadTaskHandler.PostgresReadTaskHandler(
        ).fetchUserAcessDataForSingleFileOrFolderInDictionaryFormat(fileName)
Example #26
0
    def fetchUserAcessDataForFilesAndFolders(self):
        logging.info("Inside fetchUserAcessDataForFilesAndFolders")

        return PostgresReadTaskHandler.PostgresReadTaskHandler(
        ).fetchUserAcessDataForFilesandFoldersInDictionaryFormat()
Example #27
0
    def getOwnerDetailsForFile(self, ownerId):

        logging.info("Inside getOwnerDetailsForFile")

        return ModelFactory.ModelFactory().getOwnerDetails(ownerId).__dict__["name"]
def catch_all(path):
    transformed_request = request_preparation(request, path)
    logging.info("Transformed Request From Web %s", transformed_request)
    service = ServiceInterface.ServiceInterface(transformed_request)
    logging.info("Response  %s", service.result)
    return jsonify(service.result)