fix(M02): 「사람 고르기」는 시스템 관리자에게만 — 회사 관리자에게는 숨김 (PLAN 29-2 뒷손질)
- 회사 관리자의 남의 개인 층 읽기 길(해시 owner · 서버 권한)은 그대로 - 시험 한 줄 맞춤 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
* 「구조물 조합」 아래 한 줄 · 나무 종류와 무관한 공용 부품. 고른 층의 나무는 부르는 쪽이 이 줄 아래에 붙임.
|
||||
* 권한 없는 층 = 단추 글 끝에 「읽기」(권한 = `accessFor` · 서버 `M02_Layer_Access` 와 짝)
|
||||
* 회사 = 볼 회사(`viewCompany` — 시스템 관리자는 해시 `company` · `aislo.adminCompany` · 자기 회사)
|
||||
* 「사람 고르기」(같은 줄 select · 회사 관리자 · 시스템 관리자) = 그 회사 사람의 개인 층 · 고르면 해시 `owner`
|
||||
* 「사람 고르기」(같은 줄 select · 시스템 관리자만) = 고른 회사 사람의 개인 층 · 고르면 해시 `owner`
|
||||
* 누르면 `go`(부르는 쪽이 해시로 다시 엶).
|
||||
* ========================================================================== */
|
||||
|
||||
@@ -37,7 +37,6 @@ export const companyOwner = (company: string | null, user: SessionUser | null):
|
||||
export function createLayerBar(opt: LayerBarOptions): HTMLElement {
|
||||
const { user, active } = opt;
|
||||
const isSystem = user?.role === "SYSTEM_ADMIN";
|
||||
const companyAdmin = isSystem || user?.role === "ADMIN" || !!user?.is_master;
|
||||
const ownPersonal = ownOwner("personal", user);
|
||||
if (!opt.company && !isSystem) {
|
||||
return el("div", {
|
||||
@@ -74,7 +73,7 @@ export function createLayerBar(opt: LayerBarOptions): HTMLElement {
|
||||
];
|
||||
const row = el("div", { className: "m02-layers__row", children: buttons });
|
||||
const bar = el("div", { className: "m02-layers", children: [row] });
|
||||
if (companyAdmin && opt.company) row.append(buildPeople(opt)); // 같은 줄
|
||||
if (isSystem && opt.company) row.append(buildPeople(opt)); // 같은 줄 · 시스템 관리자만
|
||||
return bar;
|
||||
}
|
||||
|
||||
|
||||
@@ -129,7 +129,10 @@ def test_층_단추_셋_사람_고르기():
|
||||
roots = _text(M02 / "M02_MasterTemplete_TreePanel_Roots.ts")
|
||||
assert 'fetchOwners("company")' not in roots # 회사 목록 펼침 없앰
|
||||
assert 'fetchOwners("personal", opt.company)' in roots
|
||||
assert "if (companyAdmin && opt.company) row.append(buildPeople(opt)); // 같은 줄" in roots
|
||||
assert (
|
||||
"if (isSystem && opt.company) row.append(buildPeople(opt)); // 같은 줄 · 시스템 관리자만"
|
||||
in roots
|
||||
)
|
||||
assert 'if (select.value) opt.go("personal", select.value);' in roots
|
||||
panel = _text(M02 / "M02_MasterTemplete_TreePanel.ts")
|
||||
assert (
|
||||
|
||||
Reference in New Issue
Block a user