diff --git a/packages/component-faraday-selectors/src/index.js b/packages/component-faraday-selectors/src/index.js
index 925aac7a881fce50bf971f765a560042755bf468..85a73988173d89e26196b32f9feeadb0ce1bf378 100644
--- a/packages/component-faraday-selectors/src/index.js
+++ b/packages/component-faraday-selectors/src/index.js
@@ -130,11 +130,11 @@ export const currentUserIsAuthor = (state, id) => {
     .includes(id)
 }
 
-export const getUserPermissions = ({ currentUser }) =>
-  get(currentUser, 'user.teams', []).map(t => ({
-    objectId: t.object.id,
-    objectType: t.object.type,
-    role: t.teamType.permissions,
+export const getUserPermissions = ({ teams = [] }) =>
+  teams.map(t => ({
+    objectId: get(t, 'object.id', ''),
+    objectType: get(t, 'object.type', ''),
+    role: get(t, 'teamType.permissions', ''),
   }))
 
 export const userNotConfirmed = ({ currentUser }) =>
diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js
index ac4868da0b46a6367c6241e128a699d413fb9f63..e24d81b07432d510a7285a26c3a344092371c9e9 100644
--- a/packages/component-manuscript/src/components/ManuscriptPage.js
+++ b/packages/component-manuscript/src/components/ManuscriptPage.js
@@ -79,6 +79,7 @@ export default compose(
     actions.getCollection({ id: match.params.project }),
     actions.getFragments({ id: match.params.project }),
     actions.getUsers(),
+    actions.getTeams(),
   ]),
   connect(
     (state, { match }) => ({
diff --git a/packages/components-faraday/src/components/Dashboard/DashboardPage.js b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
index eda5819b44ca04a7b91afc876a6cec42bba2569c..53ddd108697086d50fcd4907e8f5fc5f2b66f579 100644
--- a/packages/components-faraday/src/components/Dashboard/DashboardPage.js
+++ b/packages/components-faraday/src/components/Dashboard/DashboardPage.js
@@ -16,7 +16,11 @@ import { Dashboard } from './'
 import { priorityFilter, orderFilter, withFiltersHOC } from '../Filters'
 
 export default compose(
-  ConnectPage(() => [actions.getCollections(), actions.getUsers()]),
+  ConnectPage(() => [
+    actions.getCollections(),
+    actions.getUsers(),
+    actions.getTeams(),
+  ]),
   connect(
     state => {
       const { collections, conversion } = state
diff --git a/packages/xpub-faraday/config/authsome-mode.js b/packages/xpub-faraday/config/authsome-mode.js
index 6257394fa1137a46f003d1f8254a249dcf29c2ea..5df5dcb144f19f22eea2a977f0dc2f330d78562f 100644
--- a/packages/xpub-faraday/config/authsome-mode.js
+++ b/packages/xpub-faraday/config/authsome-mode.js
@@ -161,6 +161,14 @@ async function applyAuthenticatedUserPolicy(user, operation, object, context) {
         models: context.models,
       })
     }
+
+    if (get(object, 'path', '') === '/teams') {
+      return {
+        filter: teams => {
+          return teams.filter(t => user.teams.includes(t.id))
+        },
+      }
+    }
   }
 
   if (operation === 'POST') {