From 07df9834bbb4f2b2bf7240f93ed0fd92dc56fd0c Mon Sep 17 00:00:00 2001
From: Pierre Lespagnol <pierre.lespagnol@savoirfairelinux.com>
Date: Mon, 9 Nov 2020 12:23:49 -0500
Subject: [PATCH] conference: host can add or remove moderator for a conference
 or rendez-vous

Change-Id: If816294eb5879a60293155c79738c2729148d909
---
 src/api/newcallmodel.h           | 8 ++++++++
 src/newcallmodel.cpp             | 6 ++++++
 src/qtwrapper/callmanager_wrap.h | 5 +++++
 3 files changed, 19 insertions(+)

diff --git a/src/api/newcallmodel.h b/src/api/newcallmodel.h
index d3f37c19..c331e30e 100644
--- a/src/api/newcallmodel.h
+++ b/src/api/newcallmodel.h
@@ -247,6 +247,14 @@ public:
      */
     bool isModerator(const QString& confId, const QString& uri = "");
 
+    /**
+     * Set/unset a moderator
+     * @param confId        The conference to change
+     * @param peerId        Uri of the participant to change
+     * @param state         State of the change (true set moderator / false unset moderator)
+     */
+    void setModerator(const QString& confId, const QString& peerId, const bool& state);
+
 Q_SIGNALS:
     /**
      * Emitted when a call state changes
diff --git a/src/newcallmodel.cpp b/src/newcallmodel.cpp
index 560006e6..ff661bb7 100644
--- a/src/newcallmodel.cpp
+++ b/src/newcallmodel.cpp
@@ -768,6 +768,12 @@ NewCallModel::isModerator(const QString& confId, const QString& uri)
     return isModerator;
 }
 
+void
+NewCallModel::setModerator(const QString& confId, const QString& peerId, const bool& state)
+{
+    CallManager::instance().setModerator(confId, peerId, state);
+}
+
 void
 NewCallModel::sendSipMessage(const QString& callId, const QString& body) const
 {
diff --git a/src/qtwrapper/callmanager_wrap.h b/src/qtwrapper/callmanager_wrap.h
index fd96479a..4c856d97 100644
--- a/src/qtwrapper/callmanager_wrap.h
+++ b/src/qtwrapper/callmanager_wrap.h
@@ -386,6 +386,11 @@ public Q_SLOTS: // METHODS
 #endif
     }
 
+    void setModerator(const QString& confId, const QString& peerId, const bool& state)
+    {
+        DRing::setModerator(confId.toStdString(), peerId.toStdString(), state);
+    }
+
 Q_SIGNALS: // SIGNALS
     void callStateChanged(const QString& callID, const QString& state, int code);
     void transferFailed();
-- 
GitLab