1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2025-06-23 18:11:40 +00:00

Allow non-moderator of conversation to add members

This commit is contained in:
2020-04-25 19:03:55 +02:00
parent 5d604bc576
commit 0c93ae95b4
2 changed files with 49 additions and 21 deletions

View File

@ -84,6 +84,7 @@ export class ConversationsController {
*/
public static async UpdateSettings(h: RequestHandler) : Promise<void> {
const convID = await h.postConversationId("conversationID");
const isUserModerator = await ConversationsHelper.IsUserModerator(h.getUserId(), convID);
// Update following state, if required
if(h.hasPostParameter("following")) {
@ -94,31 +95,35 @@ export class ConversationsController {
);
}
// Update members list
if(h.hasPostParameter("members")) {
const members = h.postNumbersSet("members");
const canEveryoneAddMembers = await ConversationsHelper.CanEveryoneAddMembers(convID);
if(!isUserModerator && !canEveryoneAddMembers)
h.error(401, "You can not update the list of members of this conversation!");
// Make sure current user is on the list
if(!members.has(h.getUserId()))
members.add(h.getUserId());
await ConversationsHelper.SetMembers(convID, members, isUserModerator);
}
// Change moderator settings
if(h.hasPostParameter("members") || h.hasPostParameter("name") || h.hasPostParameter("canEveryoneAddMembers")) {
if(h.hasPostParameter("name") || h.hasPostParameter("canEveryoneAddMembers")) {
// Check if user is the moderator of the conversation
if(!await ConversationsHelper.IsUserModerator(h.getUserId(), convID))
if(!isUserModerator)
h.error(401, "You are not allowed to perform changes on this conversation !");
// Update conversation name (if required)
if(h.hasPostParameter("name")) {
const name = h.postString("name");
await ConversationsHelper.SetName(convID, name == "false" ? "" : removeHTMLNodes(name));
}
// Update the list of members of the conversation (if required)
if(h.hasPostParameter("members")) {
const members = h.postNumbersSet("members");
// Make sure current user is on the list
if(!members.has(h.getUserId()))
members.add(h.getUserId());
await ConversationsHelper.SetMembers(convID, members);
}
// Update "canEveryoneAddMembers" parameter
if(h.hasPostParameter("canEveryoneAddMembers")) {
await ConversationsHelper.SetCanEveryoneAddMembers(convID, h.postBool("canEveryoneAddMembers"));