Beispiel #1
0
 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)
Beispiel #2
0
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)