From a1e4c52a83edc8b521221541bb820ab8c9fd9717 Mon Sep 17 00:00:00 2001
From: yflory <yann.flory@xwiki.com>
Date: Mon, 28 Oct 2019 14:05:08 +0100
Subject: [PATCH] Fix editable UI displayed for team viewers

---
 www/common/common-ui-elements.js | 1 +
 www/common/drive-ui.js           | 2 +-
 www/common/outer/team.js         | 4 +++-
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js
index d097994ca..d3369eab5 100644
--- a/www/common/common-ui-elements.js
+++ b/www/common/common-ui-elements.js
@@ -430,6 +430,7 @@ define([
                 } else {
                     Object.keys(priv.teams || {}).some(function (id) {
                         var team = priv.teams[id] || {};
+                        if (team.viewer) { return; }
                         if (data.owners.indexOf(team.edPublic) === -1) { return; }
                         owned = id;
                         return true;
diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js
index 2e43ec5e7..a421ab38d 100644
--- a/www/common/drive-ui.js
+++ b/www/common/drive-ui.js
@@ -2819,7 +2819,7 @@ define([
             return $container;
         };
         var createGhostIcon = function ($list) {
-            if (APP.$content.data('readOnlyFolder')) { return; }
+            if (APP.$content.data('readOnlyFolder') || !APP.editable) { return; }
             var isInRoot = currentPath[0] === ROOT;
             var $element = $('<li>', {
                 'class': 'cp-app-drive-element-row cp-app-drive-element-grid cp-app-drive-new-ghost'
diff --git a/www/common/outer/team.js b/www/common/outer/team.js
index ab85e3a34..6ff59d66e 100644
--- a/www/common/outer/team.js
+++ b/www/common/outer/team.js
@@ -1283,7 +1283,9 @@ define([
                     owner: teams[id].owner,
                     name: teams[id].metadata.name,
                     edPublic: Util.find(teams[id], ['keys', 'drive', 'edPublic']),
-                    avatar: Util.find(teams[id], ['metadata', 'avatar'])
+                    avatar: Util.find(teams[id], ['metadata', 'avatar']),
+                    viewer: !Util.find(teams[id], ['keys', 'drive', 'edPrivate']),
+
                 };
                 if (safe && ctx.teams[id]) {
                     t[id].secondaryKey = ctx.teams[id].secondaryKey;