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)
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")