Exemplo n.º 1
0
    def user_can_see_folder(self, user: UserProfile) -> bool:
        from apps.files.models.permission_for_folder import PermissionForFolder

        if (user.has_permission(PERMISSION_FILES_WRITE_ALL_FOLDERS)
                or user.has_permission(PERMISSION_FILES_MANAGE_PERMISSIONS)):
            return True

        folders = self.get_all_parents() + [self] + self.get_all_children()
        users_groups = user.rlcgroups.all()
        if PermissionForFolder.objects.filter(
                folder__in=folders,
                group_has_permission__in=users_groups).exists():
            return True
        return False
Exemplo n.º 2
0
    def user_has_permission_read(self, user: UserProfile) -> bool:
        from apps.files.models.permission_for_folder import PermissionForFolder

        if user.rlc != self.rlc:
            return False

        if (user.has_permission(PERMISSION_FILES_READ_ALL_FOLDERS)
                or user.has_permission(PERMISSION_FILES_WRITE_ALL_FOLDERS)
                or user.has_permission(PERMISSION_FILES_MANAGE_PERMISSIONS)):
            return True

        relevant_folders = self.get_all_parents() + [self]
        users_groups = user.rlcgroups.all()
        p_read = FolderPermission.objects.get(name=PERMISSION_READ_FOLDER)
        if PermissionForFolder.objects.filter(
                folder__in=relevant_folders,
                group_has_permission__in=users_groups,
                permission=p_read,
        ).exists():
            return True

        return False