Skip to content

ユーザーの局編集に産学局を追加し、協賛ページに権限制御を実装#1089

Open
TkymHrt wants to merge 3 commits intodevelopfrom
feat/add-sangaku-bureau-and-permissions
Open

ユーザーの局編集に産学局を追加し、協賛ページに権限制御を実装#1089
TkymHrt wants to merge 3 commits intodevelopfrom
feat/add-sangaku-bureau-and-permissions

Conversation

@TkymHrt
Copy link
Copy Markdown
Member

@TkymHrt TkymHrt commented May 5, 2026

対応Issue

image

概要

  • /users ページのユーザ編集モーダルで「産学局」を選択できるように対応(DB側に登録済みのためフロント側はラベル修正と既存パターンに準じた実装)
  • 「協賛活動ページ」「協賛スタイルページ」「協賛企業ページ」に財務局長権限(roleID: 2, 3)によるアクセス制御を追加
  • /users ページと /yearperiods ページの権限制御を _hasHydrated + useCurrentUser パターンに統一し、コードを簡潔化

画面スクリーンショット等

  • なし

テスト項目

  • /users ページの編集モーダルで「産学局」が選択肢に表示されること
  • 開発者・財務局長以外のユーザで「協賛活動」「協賛スタイル」「協賛企業」ページにアクセスすると /my_page にリダイレクトされること(アクセスできないとこにリダイレクトしてたので)
  • 開発者・財務局長は上記ページに正常にアクセスできること
  • /users ページと /yearperiods ページでも同様に権限制御が機能すること

備考

  • EditModal.tsx のコンポーネント名を FundInformationEditModal から UserEditModal に修正
  • 「学科」表記を「局」に統一

gemini-code-assist[bot]

This comment was marked as resolved.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 5, 2026

Deploying finansu with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1264d03
Status: ✅  Deploy successful!
Preview URL: https://450e8c0f.finansu.pages.dev
Branch Preview URL: https://feat-add-sangaku-bureau-and.finansu.pages.dev

View logs

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

/users/yearperiods および協賛関連ページに対して、ユーザー権限(roleID: 2, 3)によるアクセス制御を追加/統一しつつ、ユーザー編集・一覧UI上の表記を「学科」→「局」へ揃えるPRです。

Changes:

  • /users/yearperiods の権限制御を _hasHydrated + useCurrentUser パターンへ統一
  • 「協賛活動/協賛スタイル/協賛企業」ページに roleID(2,3) のアクセス制御を追加
  • ユーザー関連UIの表記を「学科」→「局」へ統一(編集モーダル/一覧)

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
view/next-project/src/pages/yearperiods/index.tsx _hasHydrated を用いた roleID(2,3) ガードとローディング表示を追加
view/next-project/src/pages/users/index.tsx _hasHydrated を用いた roleID(2,3) ガードへ統一し、表示文言を「局」に変更
view/next-project/src/pages/sponsorstyles/index.tsx 協賛スタイル一覧に roleID(2,3) のガードとローディング表示を追加
view/next-project/src/pages/sponsors/index.tsx 協賛企業一覧に roleID(2,3) のガードとローディング表示を追加
view/next-project/src/pages/sponsor-activities/index.tsx 協賛活動ページに roleID(2,3) のガードとローディング表示を追加
view/next-project/src/components/users/EditModal.tsx 編集モーダルの表記を「局」に変更し、コンポーネント名を更新

Comment thread view/next-project/src/pages/users/index.tsx
Comment on lines 43 to +49
useEffect(() => {
setCurrentUser(user);
}, [user]);
if (!_hasHydrated) return;
if (!user?.roleID) return;
if (user.roleID !== 2 && user.roleID !== 3) {
router.push('/my_page');
}
}, [_hasHydrated, user?.roleID, router]);
Comment thread view/next-project/src/pages/yearperiods/index.tsx
Comment thread view/next-project/src/pages/sponsorstyles/index.tsx
Comment thread view/next-project/src/pages/sponsors/index.tsx
Comment thread view/next-project/src/pages/sponsor-activities/index.tsx
Comment on lines +87 to +93
useEffect(() => {
if (!_hasHydrated) return;
if (!user?.roleID) return;
if (user.roleID !== 2 && user.roleID !== 3) {
router.push('/my_page');
}
}, [_hasHydrated, user?.roleID, router]);
各ページの useEffect 内で、未認証(user.roleID が falsy)の場合に早期リターンするのではなく、適切に `/` へリダイレクトする処理を追加。
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@TkymHrt TkymHrt requested a review from nakatashingo May 5, 2026 12:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants