Check study access rights and study exists

 Fix #445
what about `return set(Study.get_public() + self.private_studies + self.shared_studies)`?