mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-16 00:12:33 +08:00
better error
rework default user
This commit is contained in:
parent
957b0dbbe8
commit
80f2eb7d3b
@ -28,8 +28,8 @@ class UserManager():
|
|||||||
else:
|
else:
|
||||||
self.users = {"default": "default"}
|
self.users = {"default": "default"}
|
||||||
|
|
||||||
def get_request_user_id(self, request, default_user="default"):
|
def get_request_user_id(self, request):
|
||||||
user = default_user
|
user = "default"
|
||||||
if args.multi_user and "comfy-user" in request.headers:
|
if args.multi_user and "comfy-user" in request.headers:
|
||||||
user = request.headers["comfy-user"]
|
user = request.headers["comfy-user"]
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ class UserManager():
|
|||||||
|
|
||||||
return user
|
return user
|
||||||
|
|
||||||
def get_request_user_filepath(self, request, file, type="userdata", default_user="default"):
|
def get_request_user_filepath(self, request, file, type="userdata", create_dir=True):
|
||||||
global user_directory
|
global user_directory
|
||||||
|
|
||||||
if type == "userdata":
|
if type == "userdata":
|
||||||
@ -46,20 +46,24 @@ class UserManager():
|
|||||||
else:
|
else:
|
||||||
raise KeyError("Unknown filepath type:" + type)
|
raise KeyError("Unknown filepath type:" + type)
|
||||||
|
|
||||||
user = self.get_request_user_id(request, default_user)
|
user = self.get_request_user_id(request)
|
||||||
user_root = os.path.abspath(os.path.join(root_dir, user))
|
path = user_root = os.path.abspath(os.path.join(root_dir, user))
|
||||||
|
|
||||||
# prevent leaving /{type}
|
# prevent leaving /{type}
|
||||||
if os.path.commonpath((root_dir, user_root)) != root_dir:
|
if os.path.commonpath((root_dir, user_root)) != root_dir:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
# prevent leaving /{type}/{user}
|
parent = user_root
|
||||||
path = os.path.abspath(os.path.join(user_root, file))
|
|
||||||
if os.path.commonpath((user_root, path)) != user_root:
|
|
||||||
return None
|
|
||||||
|
|
||||||
if not os.path.exists(user_root):
|
if file is not None:
|
||||||
os.mkdir(user_root)
|
# prevent leaving /{type}/{user}
|
||||||
|
path = os.path.abspath(os.path.join(user_root, file))
|
||||||
|
if os.path.commonpath((user_root, path)) != user_root:
|
||||||
|
return None
|
||||||
|
parent = os.path.join(path, os.pardir)
|
||||||
|
|
||||||
|
if create_dir and not os.path.exists(parent):
|
||||||
|
os.mkdir(parent)
|
||||||
|
|
||||||
return path
|
return path
|
||||||
|
|
||||||
@ -86,10 +90,15 @@ class UserManager():
|
|||||||
if args.multi_user:
|
if args.multi_user:
|
||||||
return web.json_response(self.users)
|
return web.json_response(self.users)
|
||||||
else:
|
else:
|
||||||
return web.json_response(None)
|
user_dir = self.get_request_user_filepath(request, None, create_dir=False)
|
||||||
|
return web.json_response(os.path.exists(user_dir))
|
||||||
|
|
||||||
@routes.post("/users")
|
@routes.post("/users")
|
||||||
async def post_users(request):
|
async def post_users(request):
|
||||||
body = await request.json()
|
body = await request.json()
|
||||||
user_id = self.add_user(body["username"])
|
username = body["username"]
|
||||||
|
if username in self.users.values():
|
||||||
|
return web.json_response({"error": "Duplicate username."}, status=400)
|
||||||
|
|
||||||
|
user_id = self.add_user(username)
|
||||||
return web.json_response(user_id)
|
return web.json_response(user_id)
|
||||||
|
|||||||
@ -61,7 +61,15 @@ export class UserSelectionScreen {
|
|||||||
body: JSON.stringify({ username }),
|
body: JSON.stringify({ username }),
|
||||||
});
|
});
|
||||||
if (resp.status >= 300) {
|
if (resp.status >= 300) {
|
||||||
throw new Error("Error creating user: " + resp.status + " " + resp.statusText);
|
let message = "Error creating user: " + resp.status + " " + resp.statusText;
|
||||||
|
try {
|
||||||
|
const res = await resp.json();
|
||||||
|
if(res.error) {
|
||||||
|
message = res.error;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
}
|
||||||
|
throw new Error(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
r({ username, userId: await resp.json(), created: true });
|
r({ username, userId: await resp.json(), created: true });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user