From 052058723650f3d466274bd78e9599c072579084 Mon Sep 17 00:00:00 2001 From: alphaeusmote <41258468-alphaeusmote@users.noreply.replit.com> Date: Fri, 11 Apr 2025 16:06:28 +0000 Subject: [PATCH] Remove group management functionality Replit-Commit-Author: Agent Replit-Commit-Session-Id: 9111ef36-26c8-4085-84ca-a35dc1fec1b5 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7083d608-d6d3-4a6a-9a27-6286c5109627/aa864d33-76c2-47e9-866b-42e52da4b7cf.jpg --- server/routes.ts | 138 +--------------------------------------------- server/storage.ts | 81 ++------------------------- 2 files changed, 6 insertions(+), 213 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index 5695ed2..840d6f0 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -909,143 +909,9 @@ export async function registerRoutes(app: Express): Promise { } }); - // Groups - app.get("/api/groups", requireRole(["admin", "manager"]), async (req, res) => { - try { - const groups = await storage.getGroups(); - res.json(groups); - } catch (error) { - console.error("Error fetching groups:", error); - res.status(500).json({ message: "Internal server error" }); - } - }); + // Groups functionality has been removed - app.get("/api/groups/:id", requireRole(["admin", "manager"]), async (req, res) => { - try { - const id = req.params.id; - const group = await storage.getGroup(id); - - if (!group) { - return res.status(404).json({ message: "Group not found" }); - } - - res.json(group); - } catch (error) { - console.error("Error fetching group:", error); - res.status(500).json({ message: "Internal server error" }); - } - }); - - app.get("/api/groups/:id/members", requireRole(["admin", "manager"]), async (req, res) => { - try { - const id = req.params.id; - const members = await storage.getGroupMembers(id); - res.json(members); - } catch (error) { - console.error("Error fetching group members:", error); - res.status(500).json({ message: "Internal server error" }); - } - }); - - app.post("/api/groups", requireRole(["admin", "manager"]), async (req, res) => { - try { - const validatedData = insertGroupSchema.parse({ - ...req.body, - createdBy: req.user?.id - }); - const group = await storage.createGroup(validatedData); - res.status(201).json(group); - } catch (error) { - if (error instanceof z.ZodError) { - res.status(400).json({ message: "Validation error", errors: error.errors }); - } else { - console.error("Error creating group:", error); - res.status(500).json({ message: "Internal server error" }); - } - } - }); - - app.put("/api/groups/:id", requireRole(["admin", "manager"]), async (req, res) => { - try { - const id = req.params.id; - const validatedData = insertGroupSchema.partial().parse(req.body); - - const updatedGroup = await storage.updateGroup(id, validatedData); - - if (!updatedGroup) { - return res.status(404).json({ message: "Group not found" }); - } - - res.json(updatedGroup); - } catch (error) { - if (error instanceof z.ZodError) { - res.status(400).json({ message: "Validation error", errors: error.errors }); - } else { - console.error("Error updating group:", error); - res.status(500).json({ message: "Internal server error" }); - } - } - }); - - app.delete("/api/groups/:id", requireRole(["admin", "manager"]), async (req, res) => { - try { - const id = req.params.id; - const deleted = await storage.deleteGroup(id); - - if (!deleted) { - return res.status(404).json({ message: "Group not found" }); - } - - res.status(204).end(); - } catch (error) { - console.error("Error deleting group:", error); - res.status(500).json({ message: "Internal server error" }); - } - }); - - // Group Members - app.post("/api/group-members", requireRole(["admin", "manager"]), async (req, res) => { - try { - // Validate member type - const memberTypeValidator = z.enum(memberTypes); - - // Extend schema with validation - const schema = insertGroupMemberSchema.extend({ - memberType: memberTypeValidator - }); - - const validatedData = schema.parse({ - ...req.body, - addedBy: req.user?.id - }); - - const member = await storage.addGroupMember(validatedData); - res.status(201).json(member); - } catch (error) { - if (error instanceof z.ZodError) { - res.status(400).json({ message: "Validation error", errors: error.errors }); - } else { - console.error("Error adding group member:", error); - res.status(500).json({ message: "Internal server error" }); - } - } - }); - - app.delete("/api/group-members/:id", requireRole(["admin", "manager"]), async (req, res) => { - try { - const id = req.params.id; - const deleted = await storage.removeGroupMember(id); - - if (!deleted) { - return res.status(404).json({ message: "Group member not found" }); - } - - res.status(204).end(); - } catch (error) { - console.error("Error removing group member:", error); - res.status(500).json({ message: "Internal server error" }); - } - }); + // Group Members endpoints have been removed // API Tokens app.get("/api/api-tokens", requireRole(["admin", "manager"]), async (req, res) => { diff --git a/server/storage.ts b/server/storage.ts index 4ca9e66..3924dd4 100644 --- a/server/storage.ts +++ b/server/storage.ts @@ -9,8 +9,6 @@ import { type Webhook, type InsertWebhook, type WebhookDeliveryLog, type InsertWebhookDeliveryLog, type DnsMetric, type InsertDnsMetric, - type Group, type InsertGroup, - type GroupMember, type InsertGroupMember, type MemberType } from "@shared/schema"; import session from "express-session"; @@ -32,15 +30,7 @@ export interface IStorage { updateOrganization(id: string, org: Partial): Promise; deleteOrganization(id: string): Promise; - // Group management - getGroup(id: string): Promise; - getGroups(): Promise; - getGroupMembers(groupId: string): Promise; - createGroup(group: InsertGroup): Promise; - updateGroup(id: string, group: Partial): Promise; - deleteGroup(id: string): Promise; - addGroupMember(member: InsertGroupMember): Promise; - removeGroupMember(id: string): Promise; + // Group management has been removed // Domain management getDomain(id: string): Promise; @@ -112,8 +102,7 @@ export class MemStorage implements IStorage { private webhooksMap: Map; private webhookDeliveryLogsMap: Map; private metricsMap: Map; - private groupsMap: Map; - private groupMembersMap: Map; + // Group maps have been removed // Counters for IDs private userIdCounter: number; @@ -126,8 +115,7 @@ export class MemStorage implements IStorage { private webhookIdCounter: number; private webhookDeliveryLogIdCounter: number; private metricIdCounter: number; - private groupIdCounter: number; - private groupMemberIdCounter: number; + // Group counters have been removed public sessionStore: any; @@ -322,68 +310,7 @@ export class MemStorage implements IStorage { return this.orgsMap.delete(parseInt(id)); } - // Group management - async getGroup(id: string): Promise { - return this.groupsMap.get(parseInt(id)); - } - - async getGroups(): Promise { - return Array.from(this.groupsMap.values()); - } - - async getGroupMembers(groupId: string): Promise { - return Array.from(this.groupMembersMap.values()) - .filter(member => member.groupId === groupId); - } - - async createGroup(group: InsertGroup): Promise { - const numId = this.groupIdCounter++; - const createdAt = new Date(); - const newGroup: Group = { - id: numId.toString(), - name: group.name, - description: group.description || null, - isActive: group.isActive ?? true, - createdBy: group.createdBy, - parentGroupId: group.parentGroupId || null, - createdAt - }; - this.groupsMap.set(numId, newGroup); - return newGroup; - } - - async updateGroup(id: string, groupData: Partial): Promise { - const numId = parseInt(id); - const group = await this.getGroup(id); - if (!group) return undefined; - - const updatedGroup = { ...group, ...groupData }; - this.groupsMap.set(numId, updatedGroup); - return updatedGroup; - } - - async deleteGroup(id: string): Promise { - return this.groupsMap.delete(parseInt(id)); - } - - async addGroupMember(member: InsertGroupMember): Promise { - const numId = this.groupMemberIdCounter++; - const addedAt = new Date(); - const newMember: GroupMember = { - id: numId.toString(), - groupId: member.groupId, - memberId: member.memberId, - memberType: member.memberType, - addedBy: member.addedBy, - addedAt - }; - this.groupMembersMap.set(numId, newMember); - return newMember; - } - - async removeGroupMember(id: string): Promise { - return this.groupMembersMap.delete(parseInt(id)); - } + // Group management methods have been removed // Domains async getDomain(id: string): Promise {