Beispiel #1
0
def share_modify(args):
    user_id = backend.user_get_id(args.login)

    if not user_id:
        sys.stderr.write("Error: user `%s' does not exist\n" % args.login)
        return

    args.path = share_clean_path(args.path)

    if not args.path:
        sys.stderr.write("Error: shared data path must not be empty\n")
        return

    if not fs.share_path_exists(base_path, args.path):
        sys.stderr.write("Error: share `%s' data path does not exist\n" % args.path)
        return

    share_id = backend.share_id(user_id, args.path)

    if share_id:
        backend.share_update(share_id, args.writable)

        if backend.share_is_acl_set(share_id):
            sys.stdout.write("Setting ACL... [Please wait]\n")
            fs.share_set(base_path, args.path, user_id, args.writable)

        sys.stdout.write("OK\n")
    else:
        sys.stderr.write("Error: share does not exist\n" % args.path)
Beispiel #2
0
def share_add(args):
    user_id = backend.user_get_id(args.login)

    if not user_id:
        sys.stderr.write("Error: user `%s' does not exist\n" % args.login)
        return

    args.path = share_clean_path(args.path)

    if not args.path:
        sys.stderr.write("Error: shared data path must not be empty\n")
        return

    if backend.share_exists(user_id, args.path):
        sys.stderr.write("Error: share `%s' for `%s' user already exists\n" % (args.path, args.login))
        return

    share_id = backend.share_contains(user_id, args.path)

    if share_id is None:
        share_id = backend.share_intersect(user_id, args.path)

    if share_id is not None:
        sys.stderr.write("Error: share `%s' conflicts with `%s'\n" % (args.path, backend.share_get_path(share_id)))
        return

    if fs.user_path_exists(base_path, args.login, args.path):
        sys.stderr.write("Error: share `%s' user path already exists\n" % args.path)
        return

    if not args.create and not fs.share_path_exists(base_path, args.path):
        sys.stderr.write("Error: share `%s' data path does not exist\n" % args.path)
        return

    backend.share_insert(user_id, args.path, args.writable, (True != args.noacl))

    if not args.noacl:
        sys.stdout.write("Setting ACL... [Please wait]\n")
        fs.share_set(base_path, args.path, user_id, args.writable)

    fs.user_link(base_path, args.login, args.path)

    sys.stdout.write("OK\n")