feat: team-based visibility, roles management, unified users, UI fixes
All checks were successful
Deploy / deploy (push) Successful in 12s
All checks were successful
Deploy / deploy (push) Successful in 12s
- Add Roles table with CRUD routes and Settings page management - Unify user management: remove Users page, enhance Team page with permission level + role dropdowns - Add team-based visibility scoping to projects, campaigns, posts, tasks, issues, artefacts, and dashboard - Add team_id to projects and campaigns (create + edit forms) - Add getUserTeamIds/getUserVisibilityContext helpers - Fix Budgets modal horizontal scroll (separate linked-to row) - Add collapsible filter bar to PostProduction page Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -102,6 +102,31 @@ function stripSensitiveFields(data) {
|
||||
return data;
|
||||
}
|
||||
|
||||
// Get all team IDs for a user
|
||||
async function getUserTeamIds(userId) {
|
||||
const entries = await nocodb.list('TeamMembers', { where: `(user_id,eq,${userId})`, limit: 200 });
|
||||
return new Set(entries.map(e => e.team_id));
|
||||
}
|
||||
|
||||
// Get full visibility context for a user (team IDs + team project/campaign IDs)
|
||||
async function getUserVisibilityContext(userId) {
|
||||
const myTeamIds = await getUserTeamIds(userId);
|
||||
if (myTeamIds.size === 0) return { myTeamIds, teamProjectIds: new Set(), teamCampaignIds: new Set() };
|
||||
|
||||
// Fetch projects and campaigns that belong to the user's teams
|
||||
const allProjects = await nocodb.list('Projects', { limit: 2000 });
|
||||
const allCampaigns = await nocodb.list('Campaigns', { limit: 2000 });
|
||||
|
||||
const teamProjectIds = new Set(
|
||||
allProjects.filter(p => p.team_id && myTeamIds.has(p.team_id)).map(p => p.Id)
|
||||
);
|
||||
const teamCampaignIds = new Set(
|
||||
allCampaigns.filter(c => c.team_id && myTeamIds.has(c.team_id)).map(c => c.Id)
|
||||
);
|
||||
|
||||
return { myTeamIds, teamProjectIds, teamCampaignIds };
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getRecordName,
|
||||
batchResolveNames,
|
||||
@@ -111,5 +136,7 @@ module.exports = {
|
||||
sanitizeWhereValue,
|
||||
getUserModules,
|
||||
stripSensitiveFields,
|
||||
getUserTeamIds,
|
||||
getUserVisibilityContext,
|
||||
_nameCache,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user