From 7b646af310a46652be61c1d5aef541209e5d6eaa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Tue, 10 Jul 2018 10:08:49 -0400
Subject: [PATCH] conversationmodel: check if account is enable before
 interacting with peer

A disabled account cannot send messages or place call with a peer.

Change-Id: Ib76dd530ffbbb6f1f7d88f5b5079d83f2b0e8d89
Gitlab: #370
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
---
 src/api/account.h         |  2 +-
 src/conversationmodel.cpp | 12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/api/account.h b/src/api/account.h
index b67b8971..9816a239 100644
--- a/src/api/account.h
+++ b/src/api/account.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- *   Copyright (C) 2017-2018 Savoir-faire Linux                                  *
+ *   Copyright (C) 2017-2018 Savoir-faire Linux                             *
  *   Author: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>             *
  *   Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com>           *
  *                                                                          *
diff --git a/src/conversationmodel.cpp b/src/conversationmodel.cpp
index aba718d1..013a06a0 100644
--- a/src/conversationmodel.cpp
+++ b/src/conversationmodel.cpp
@@ -1,5 +1,5 @@
 /****************************************************************************
- *   Copyright (C) 2017-2018 Savoir-faire Linux                                  *
+ *   Copyright (C) 2017-2018 Savoir-faire Linux                             *
  *   Author: Nicolas Jäger <nicolas.jager@savoirfairelinux.com>             *
  *   Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com>           *
  *   Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>       *
@@ -381,7 +381,7 @@ void
 ConversationModel::makePermanent(const std::string& uid)
 {
     auto conversationIdx = pimpl_->indexOf(uid);
-    if (conversationIdx == -1)
+    if (conversationIdx == -1 || !owner.enabled)
         return;
 
     auto& conversation = pimpl_->conversations.at(conversationIdx);
@@ -484,7 +484,7 @@ ConversationModelPimpl::placeCall(const std::string& uid, bool isAudioOnly)
 {
     auto conversationIdx = indexOf(uid);
 
-    if (conversationIdx == -1)
+    if (conversationIdx == -1 || !linked.owner.enabled)
         return;
 
     auto& conversation = conversations.at(conversationIdx);
@@ -592,7 +592,7 @@ ConversationModel::sendMessage(const std::string& uid, const std::string& body)
 {
     // FIXME potential race condition between index check and at() call
     auto conversationIdx = pimpl_->indexOf(uid);
-    if (conversationIdx == -1)
+    if (conversationIdx == -1 || !owner.enabled)
         return;
 
     auto& conversation = pimpl_->conversations.at(conversationIdx);
@@ -741,7 +741,7 @@ ConversationModel::joinConversations(const std::string& uidA, const std::string&
 {
     auto conversationAIdx = pimpl_->indexOf(uidA);
     auto conversationBIdx = pimpl_->indexOf(uidB);
-    if (conversationAIdx == -1 || conversationBIdx == -1)
+    if (conversationAIdx == -1 || conversationBIdx == -1 || !owner.enabled)
         return;
     auto& conversationA = pimpl_->conversations[conversationAIdx];
     auto& conversationB = pimpl_->conversations[conversationBIdx];
@@ -1709,7 +1709,7 @@ ConversationModel::sendFile(const std::string& convUid,
                             const std::string& filename)
 {
     auto conversationIdx = pimpl_->indexOf(convUid);
-    if (conversationIdx == -1)
+    if (conversationIdx == -1 || !owner.enabled)
         return;
 
     const auto peerUri = pimpl_->conversations[conversationIdx].participants.front();
-- 
GitLab