Consider making `self.user_partitions` a dict that is keyed by the user_partition.id.  It would be faster to search for a partition by id in that case.  Although for this feature, we may not have many partitions.