コード例 #1
0
    def post(self):

        user = users.get_current_user()
        if user == None:
            self.redirect('/')
        else:

            current_user = MyUser.get(user.user_id())

            dir_id = self.request.get('dir')

            owner_user, directory, parent = check(current_user.key, dir_id)

            if owner_user and directory and (
                    directory.is_users_dir(current_user.key)
                    or has_write_permission(current_user.key, parent)):

                for upload in self.get_uploads():

                    blobinfo = blobstore.BlobInfo(upload.key())

                    my_file = File(name=blobinfo.filename, blob=upload.key())

                    if not directory.file_exists(my_file.name):
                        directory.files.append(my_file)

                directory.put()

                self.redirect(self.request.referer)
コード例 #2
0
ファイル: funcs.py プロジェクト: eosobande/fileguard
def check(current_user_key, cwd_id):

    owner = MyUser.get(cwd_id.split('/')[0])
    if owner:

        directory = Directory.get_by_id(cwd_id, owner.key)
        if directory:

            parent = None

            is_shared = directory.is_users_dir(current_user_key)
            if not is_shared:
                parent = directory

                while parent and not is_shared and current_user_key not in parent.lock:
                    is_shared = parent.is_shared_to_me(current_user_key)
                    if not is_shared:
                        parent = parent.get_parent()

            if is_shared:
                return owner, directory, parent

    return None, None, None
コード例 #3
0
    def get(self, abs_path):

        user = users.get_current_user()
        if user == None:
            self.redirect('/')
        else:

            current_user = MyUser.get(user.user_id())

            abs_path = abs_path.split('/')

            file_index = abs_path[len(abs_path) -
                                  1 if len(abs_path) > 2 else 1]

            abs_path[len(abs_path) - 1] = ''
            abs_path = '/'.join(abs_path)

            owner_user, directory, parent = check(current_user.key, abs_path)

            if file_index and owner_user and directory:
                my_file = directory.files[int(file_index)]
                self.send_blob(my_file.blob, save_as=my_file.name)
            else:
                self.redirect('/')