Draft
Conversation
Open
- Frontend: Add isOwner variable; show transfer button only to channel owner (not all root/moderator users) - Frontend: Fix save() to not send collaboratorIds when user lacks permission (co-admins always sent empty collaboratorIds causing access denied errors) - Frontend: Add missing CSS styles for collaborator user list items - Backend: Move collaboratorIds update into main channelsRepository.update() call to fix JSON serialization error (was in separate setCollaborators call) - Backend: Handle empty collaboratorIds array correctly (skip In([]) check) - Backend: Fix entity column definition to use explicit varchar type with correct length 64 matching the migration Agent-Logs-Url: https://github.com/Type4ny-Project/Misskey/sessions/b0bc8330-a8a3-4641-bf50-6cbd2ff258fb Co-authored-by: mattyatea <56515516+mattyatea@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix bug in channel settings display for co-admins
fix: チャンネル設定画面の権限バグ・共同管理者保存エラーを修正
Apr 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
チャンネル設定画面における表示権限バグ・共同管理者リスト非表示・共同管理者保存時のJSONエラーを修正。
Frontend (
channel-editor.vue)isOwnerをisRoot(オーナーorモデレーター)と分離し、譲渡ボタンをオーナーのみに制限 (v-if="isOwner")save()が常にcollaboratorIds: []を送信していた問題を修正 — 権限のないユーザー(共同管理者)が保存するとバックエンドでACCESS_DENIEDになっていた。isRootのときのみ送信するよう変更userItem,userItemMain,userItemMainBody,unassign) が未定義だったため追加Backend (
channels/update.ts)channelService.setCollaborators()を別途呼んでいたのを廃止し、collaboratorIdsの更新をchannelsRepository.update()のメイン呼び出しに統合 —pinnedNoteIdsと同じパスを通ることで TypeORM のシリアライズ問題 (invalid input syntax for type json) を解消collaboratorIds: []時にIn([])を呼ばないよう空配列ガードを追加Entity (
Channel.ts)collaboratorIdsカラム定義をマイグレーション実体 (character varying(64)[]) に合わせ、...id()スプレッド (length: 32) から@Column('varchar', { array: true, length: 64 })に修正 (pinnedNoteIdsと同形式)Why
isRootはモデレーターも含むが、譲渡はオーナー専用操作)collaboratorIds: []が常に送られACCESS_DENIEDになっていたinvalid input syntax for type jsonが発生し保存できなかった(TypeORM のupdate()が配列カラムを誤ってシリアライズする問題で、メインの update call に統合することで回避)Additional info (optional)
ChannelService.setCollaborators()/addCollaborator()/removeCollaborator()メソッド自体は他から呼ばれていないが、そのまま残置。直接channelsRepository.update()を呼んでいるコードが今後生じる場合は同様の問題に注意。Checklist
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
download.cypress.io/home/REDACTED/work/_temp/ghcca-node/node/bin/node node dist/index.js --exec install(dns block)https://storage.googleapis.com/tensorflow/libtensorflow/libtensorflow-cpu-linux-x86_64-2.9.1.tar.gz/home/REDACTED/work/_temp/ghcca-node/node/bin/node node scripts/install.js(http block)If you need me to access, download, or install something from one of these locations, you can either: