def set_context_props(self, request, **kwargs): super(MetadataMixin, self).set_context_props(request, **kwargs) mgr = FileManager(self.agave_client) return mgr.get(system_id = self.filesystem, path = self.file_path, username = request.user.username, is_public = self.is_public)
def share(system_id, path, username, permission, me): logger.debug('Sharing file/folder: {}. To: {}. Owner: {}'.format(path, username, me)) path_shared = path try: user = get_user_model().objects.get(username=me) ag = user.agave_oauth.client mngr = FileManager(agave_client = ag) rep = mngr.share(system_id = system_id, path = path, username = username, permission = permission, me = me) meta_obj, ret = mngr.get(system_id, path, me, False) if meta_obj.format != 'folder': path_shared = meta_obj.path logger.debug('Successfully updated permissions: {}'.format(rep)) DataEvent.send_generic_event({ 'username_from': me, 'username_to': username, 'permission': permission, 'action': 'share_finished', 'path': path, 'action_link': { 'label': 'View Files', 'value': '/data/my/#/Shared with me/' + path_shared}, 'html':[ {'Message': 'Your files have been shared.'}, {'Action': 'Sharing Finished'}, {'Shared with': username}, {'Permissions set': permission}, ] }, [me]) DataEvent.send_generic_event({ 'username_from': me, 'username_to': username, 'permission': permission, 'action': 'share_finished', 'path': path, 'action_link': { 'label': 'View Files', 'value': '/data/my/#/Shared with me/' + path_shared}, 'html':[ {'Message': '{} have shared some files with you.'.format(me)}, {'Action': 'Sharing Finished'}, {'Shared with': username}, {'Permissions set': permission}, ], 'toast': { 'type': 'info', 'msg': me + ' has shared files with you.' } }, [username]) except ObjectDoesNotExist: logger.exception('Unable to locate local user=%s' % username)