diff --git a/gvsds/apps/gerp/apps/talk/apps.gerp_manifests b/gvsds/apps/gerp/apps/talk/apps.gerp_manifests index 9b1cb890..b5b477b5 100644 --- a/gvsds/apps/gerp/apps/talk/apps.gerp_manifests +++ b/gvsds/apps/gerp/apps/talk/apps.gerp_manifests @@ -12,7 +12,7 @@ { "MenuName": "talk", "MenuTitle": "Talk", - "MenuLink": "pages/talk/index.html", + "MenuLink": "pages/talk.html", "MenuIcon": "ChatDotRound", "MenuSort": 8, "ParentMenuName": "company" diff --git a/gvsds/apps/gerp/apps/talk/manager.py b/gvsds/apps/gerp/apps/talk/manager.py index ca158b63..cd152e31 100644 --- a/gvsds/apps/gerp/apps/talk/manager.py +++ b/gvsds/apps/gerp/apps/talk/manager.py @@ -681,8 +681,8 @@ class TalkManager: company_bytes = _ToBytes(CompanyUUID) if not company_bytes: return [] - from gvsdsdk.auth.managers import CompanyManager - company_user_uuids = list(CompanyManager.GetCompanyUserUUIDs(company_bytes)) + from gvsdsdk.auth.managers import RoleManager + company_user_uuids = list(RoleManager.GetCompanyUserUUIDs(company_bytes)) if not company_user_uuids: return [] User = _GetUserModel() @@ -756,8 +756,14 @@ class TalkManager: """判断用户是否属于该公司""" if CompanyUUID is None or UserUUIDBytes is None: return False - from gvsdsdk.auth.managers import CompanyManager - return UserUUIDBytes in CompanyManager.GetCompanyUserUUIDs(CompanyUUID) + company_bytes = _ToBytes(CompanyUUID) + if not company_bytes: + return False + from gvsdsdk.auth.managers import RoleManager + # 注意:GetCompanyUserUUIDs 返回的是 UUIDObj 集合,与 bytes 的 hash 不同, + # 必须先统一归一成 bytes 再比对(否则成员判定恒为 False) + member_uuids = {_ToBytes(u) for u in RoleManager.GetCompanyUserUUIDs(company_bytes)} + return UserUUIDBytes in member_uuids @staticmethod def _FindSingle(UserA, UserB, CompanyUUID):