feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat: add matricula field to User model and update related components… - #202

Merged
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula
Nov 3, 2025

Hidden character warning

The head ref may contain hidden characters: "201-exporta\u00e7\u00e3o-para-usu\u00e1rios-com-matricula"
Merged

feat: add matricula field to User model and update related components…#202
rbxyz merged 1 commit into
mainfrom
201-exportação-para-usuários-com-matricula

Conversation

@rbxyz

@rbxyzrbxyz commented Nov 3, 2025

Copy link
Copy Markdown
Collaborator

… for user management and order export

Summary by CodeRabbit

  • New Features

    • Added employee ID (Matrícula) field to user management system for tracking and export purposes.
    • Introduced granular permission level allowing managers to edit basic user information without full administrative access.
    • Order exports now include employee ID column in Excel reports.
  • Bug Fixes

    • Fixed birthday page navigation route.

@rbxyzrbxyz linked an issue Nov 3, 2025 that may be closed by this pull request
@rbxyz
rbxyz merged commit 6343cb5 into mainNov 3, 2025
3 of 4 checks passed
@vercel

vercelBot commented Nov 3, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentPreviewCommentsUpdated (UTC)
eloBuildingBuildingPreviewCommentNov 3, 2025 2:10pm

@coderabbitai

coderabbitaiBot commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

Caution

Review failed

The pull request is closed.

Walkthrough

Added a new optional matricula field (employee ID) to the User model in Prisma schema. Extended role-based access control with a new can_manage_dados_basicos_users permission flag. Integrated matricula data across user management pages, API routers, food order exports, and admin interfaces. Updated birthday route path.

Changes

Cohort / File(s)Summary
Prisma schema
prisma/schema.prisma
Added optional matricula: String? field to User model for storing employee ID data.
Data import utility
scripts/import-matriculas.ts
Added new commented-out script to import user matriculas from CSV using Prisma (entire file structure is outlined but disabled).
Permission and role type extensions
src/types/role-config.ts, src/hooks/use-access-control.tsx
Extended RolesConfig with optional can_manage_dados_basicos_users?: boolean permission flag. Added new canManageBasicUserData() accessor in useAccessControl hook that checks sudo status or this new permission.
User API router
src/server/api/routers/user.ts
Broadened permission checks for listUsers and updateBasicInfo to include users with can_manage_dados_basicos_users. Added matricula to input schemas (updateBasicInfo, updateRoleConfig) and output selections (listUsers). Non-sudo users now restricted to editing only basic fields including matricula.
Admin user management page
src/app/(authenticated)/admin/users/page.tsx
Extended page access control with new canManageBasicUserData check. Added matricula as nullable field to user object shape in UserManagementCardProps. Integrated matricula into basic data state, form inputs, saves, and display. Added conditional UI rendering for permission-restricted sections. Updated ExtendedRolesConfig with new permission flag.
Food orders export
src/app/(authenticated)/admin/food/_components/orders-tab.tsx, src/server/api/routers/food-order.ts
Added matricula to per-user order aggregation in orders export flow. Included "Matrícula" column in exported Excel data. Updated food-order router queries (exportOrdersByRestaurantAndDate, listToExcel) to select matricula field.
Route configuration
src/const/routes.ts
Updated Aniversariantes do Mês route href from /birthday to /birthdays.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • src/app/(authenticated)/admin/users/page.tsx: Dense changes across permission gating, data flow, and UI rendering; verify permission checks are consistently applied and state synchronization is correct across all matricula propagation paths.
  • src/server/api/routers/user.ts: Logic changes to permission checks and field restrictions for non-sudo users; ensure updateBasicInfo correctly limits edits to basic fields and that can_manage_dados_basicos_users permission is properly enforced.
  • Permission integration: Ensure canManageBasicUserData() is consistently used across both frontend and backend permission checks and that the permission flag is correctly persisted in role_config mutations.

Possibly related PRs

Poem

🐰 A new matricula hops into view,
Permissions fine-tuned, roles revised anew,
User data flows through each carefully gated door,
Export sheets enriched with IDs galore—
One birthday route shortened, the rest thrives in store! 🎉

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 201-exportação-para-usuários-com-matricula

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e69c602 and 06d59a4.

📒 Files selected for processing (9)
  • prisma/schema.prisma (1 hunks)
  • scripts/import-matriculas.ts (1 hunks)
  • src/app/(authenticated)/admin/food/_components/orders-tab.tsx (3 hunks)
  • src/app/(authenticated)/admin/users/page.tsx (12 hunks)
  • src/const/routes.ts (1 hunks)
  • src/hooks/use-access-control.tsx (2 hunks)
  • src/server/api/routers/food-order.ts (2 hunks)
  • src/server/api/routers/user.ts (4 hunks)
  • src/types/role-config.ts (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for freeto 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.

Exportação para usuários com matricula

1 participant

@rbxyz