feat: change alliance member permissions
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (18) (push) Successful in 44s
				
			
		
			
				
	
				Build / build (22) (push) Successful in 1m16s
				
			
		
			
				
	
				Build / build (20) (push) Successful in 1m9s
				
			
		
			
				
	
				Build / build (18) (pull_request) Successful in 45s
				
			
		
			
				
	
				Build / build (20) (pull_request) Successful in 1m15s
				
			
		
			
				
	
				Build / build (22) (pull_request) Successful in 1m14s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (18) (push) Successful in 44s
				
			Build / build (22) (push) Successful in 1m16s
				
			Build / build (20) (push) Successful in 1m9s
				
			Build / build (18) (pull_request) Successful in 45s
				
			Build / build (20) (pull_request) Successful in 1m15s
				
			Build / build (22) (pull_request) Successful in 1m14s
				
			This commit is contained in:
		
							parent
							
								
									651640c4d7
								
							
						
					
					
						commit
						8ac7529770
					
				
							
								
								
									
										38
									
								
								src/controllers/api/setAllianceGuildPermissionsController.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/controllers/api/setAllianceGuildPermissionsController.ts
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					import { AllianceMember, GuildMember } from "@/src/models/guildModel";
 | 
				
			||||||
 | 
					import { getAccountForRequest } from "@/src/services/loginService";
 | 
				
			||||||
 | 
					import { GuildPermission } from "@/src/types/guildTypes";
 | 
				
			||||||
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const setAllianceGuildPermissionsController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    // Check requester is a warlord in their guild
 | 
				
			||||||
 | 
					    const account = await getAccountForRequest(req);
 | 
				
			||||||
 | 
					    const guildMember = (await GuildMember.findOne({ accountId: account._id, status: 0 }))!;
 | 
				
			||||||
 | 
					    if (guildMember.rank > 1) {
 | 
				
			||||||
 | 
					        res.status(400).end();
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Check guild is the creator of the alliance and don't allow changing of own permissions. (Technically changing permissions requires the Promoter permission, but both are exclusive to the creator guild.)
 | 
				
			||||||
 | 
					    const allianceMember = (await AllianceMember.findOne({
 | 
				
			||||||
 | 
					        guildId: guildMember.guildId,
 | 
				
			||||||
 | 
					        Pending: false
 | 
				
			||||||
 | 
					    }))!;
 | 
				
			||||||
 | 
					    if (
 | 
				
			||||||
 | 
					        !(allianceMember.Permissions & GuildPermission.Ruler) ||
 | 
				
			||||||
 | 
					        allianceMember.guildId.equals(req.query.guildId as string)
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					        res.status(400).end();
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const targetAllianceMember = (await AllianceMember.findOne({
 | 
				
			||||||
 | 
					        allianceId: allianceMember.allianceId,
 | 
				
			||||||
 | 
					        guildId: req.query.guildId
 | 
				
			||||||
 | 
					    }))!;
 | 
				
			||||||
 | 
					    targetAllianceMember.Permissions =
 | 
				
			||||||
 | 
					        parseInt(req.query.perms as string) &
 | 
				
			||||||
 | 
					        (GuildPermission.Recruiter | GuildPermission.Treasurer | GuildPermission.ChatModerator);
 | 
				
			||||||
 | 
					    await targetAllianceMember.save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    res.end();
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
@ -103,6 +103,7 @@ import { saveVaultAutoContributeController } from "@/src/controllers/api/saveVau
 | 
				
			|||||||
import { sellController } from "@/src/controllers/api/sellController";
 | 
					import { sellController } from "@/src/controllers/api/sellController";
 | 
				
			||||||
import { setActiveQuestController } from "@/src/controllers/api/setActiveQuestController";
 | 
					import { setActiveQuestController } from "@/src/controllers/api/setActiveQuestController";
 | 
				
			||||||
import { setActiveShipController } from "@/src/controllers/api/setActiveShipController";
 | 
					import { setActiveShipController } from "@/src/controllers/api/setActiveShipController";
 | 
				
			||||||
 | 
					import { setAllianceGuildPermissionsController } from "@/src/controllers/api/setAllianceGuildPermissionsController";
 | 
				
			||||||
import { setBootLocationController } from "@/src/controllers/api/setBootLocationController";
 | 
					import { setBootLocationController } from "@/src/controllers/api/setBootLocationController";
 | 
				
			||||||
import { setDojoComponentMessageController } from "@/src/controllers/api/setDojoComponentMessageController";
 | 
					import { setDojoComponentMessageController } from "@/src/controllers/api/setDojoComponentMessageController";
 | 
				
			||||||
import { setEquippedInstrumentController } from "@/src/controllers/api/setEquippedInstrumentController";
 | 
					import { setEquippedInstrumentController } from "@/src/controllers/api/setEquippedInstrumentController";
 | 
				
			||||||
@ -177,6 +178,7 @@ apiRouter.get("/queueDojoComponentDestruction.php", queueDojoComponentDestructio
 | 
				
			|||||||
apiRouter.get("/removeFromAlliance.php", removeFromAllianceController);
 | 
					apiRouter.get("/removeFromAlliance.php", removeFromAllianceController);
 | 
				
			||||||
apiRouter.get("/setActiveQuest.php", setActiveQuestController);
 | 
					apiRouter.get("/setActiveQuest.php", setActiveQuestController);
 | 
				
			||||||
apiRouter.get("/setActiveShip.php", setActiveShipController);
 | 
					apiRouter.get("/setActiveShip.php", setActiveShipController);
 | 
				
			||||||
 | 
					apiRouter.get("/setAllianceGuildPermissions.php", setAllianceGuildPermissionsController);
 | 
				
			||||||
apiRouter.get("/setBootLocation.php", setBootLocationController);
 | 
					apiRouter.get("/setBootLocation.php", setBootLocationController);
 | 
				
			||||||
apiRouter.get("/setGuildMotd.php", setGuildMotdController);
 | 
					apiRouter.get("/setGuildMotd.php", setGuildMotdController);
 | 
				
			||||||
apiRouter.get("/setSupportedSyndicate.php", setSupportedSyndicateController);
 | 
					apiRouter.get("/setSupportedSyndicate.php", setSupportedSyndicateController);
 | 
				
			||||||
 | 
				
			|||||||
@ -317,5 +317,3 @@ export interface IAllianceMemberDatabase {
 | 
				
			|||||||
    Pending: boolean;
 | 
					    Pending: boolean;
 | 
				
			||||||
    Permissions: number;
 | 
					    Permissions: number;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
// TODO: GET /api/setAllianceGuildPermissions.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=000000000000000000000042&perms=2
 | 
					 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user