diff --git a/beat/web/code/models.py b/beat/web/code/models.py
index ac9453fa20fac3e88e23aabb6d6c57bbe9104d2b..e42994ad9cde44127b1f593315b451ccfc453faa 100755
--- a/beat/web/code/models.py
+++ b/beat/web/code/models.py
@@ -25,6 +25,8 @@
 #                                                                             #
 ###############################################################################
 
+from collections import namedtuple
+
 from django.db import models
 from django.db.models import Q
 from django.contrib.auth.models import User
@@ -228,6 +230,10 @@ def get_source_code(instance):
 
 # ----------------------------------------------------------
 
+AccessibilityInfo = namedtuple(
+    "Accessibility", ["has_access", "is_opensource", "accessibility"]
+)
+
 
 class Code(StoredContribution):
 
@@ -666,47 +672,46 @@ class Code(StoredContribution):
 
         if self.author == user:
             if self.sharing == Contribution.PRIVATE:
-                return (True, False, "private")
+                return AccessibilityInfo(True, False, "private")
             elif self.sharing == Contribution.PUBLIC:
-                return (True, True, "public")
+                return AccessibilityInfo(True, True, "public")
             else:
-                return (True, False, "confidential")
-
+                return AccessibilityInfo(True, False, "confidential")
         else:
             if self.sharing == Contribution.PRIVATE:
-                return (False, False, None)
+                return AccessibilityInfo(False, False, None)
             elif self.sharing == Contribution.PUBLIC:
-                return (True, True, "public")
+                return AccessibilityInfo(True, True, "public")
             elif not without_usable and (self.sharing == Contribution.USABLE):
-                return (True, False, "confidential")
+                return AccessibilityInfo(True, False, "confidential")
             elif not user.is_anonymous():
                 if self.shared_with.filter(id=user.id).exists() or (
                     self.shared_with_team.filter(members=user).count() > 0
                 ):
-                    return (True, True, "confidential")
+                    return AccessibilityInfo(True, True, "confidential")
                 elif not without_usable and (
                     self.usable_by.filter(id=user.id).exists()
                     or (self.usable_by_team.filter(members=user).count() > 0)
                 ):
-                    return (True, False, "confidential")
+                    return AccessibilityInfo(True, False, "confidential")
 
-        return (False, False, None)
+        return AccessibilityInfo(False, False, None)
 
     def _accessibility_for_team(self, team, without_usable=False):
         """Team specific accessibility check """
 
         if self.sharing == Contribution.PRIVATE:
-            return (False, False, None)
+            return AccessibilityInfo(False, False, None)
         elif self.sharing == Contribution.PUBLIC:
-            return (True, True, "public")
+            return AccessibilityInfo(True, True, "public")
         elif not without_usable and (self.sharing == Contribution.USABLE):
-            return (True, False, "confidential")
+            return AccessibilityInfo(True, False, "confidential")
         elif self.shared_with_team.filter(id=team.id).exists():
-            return (True, True, "confidential")
+            return AccessibilityInfo(True, True, "confidential")
         elif not without_usable and self.usable_by_team.filter(id=team.id).exists():
-            return (True, False, "confidential")
+            return AccessibilityInfo(True, False, "confidential")
 
-        return (False, False, None)
+        return AccessibilityInfo(False, False, None)
 
     # _____ Protected methods __________
 
diff --git a/beat/web/common/models.py b/beat/web/common/models.py
index ffc0a5a5def3cd002044f88d9954aca2b591c8df..590670c6031c65e76a40bc571df577818938eb79 100755
--- a/beat/web/common/models.py
+++ b/beat/web/common/models.py
@@ -25,6 +25,8 @@
 #                                                                             #
 ###############################################################################
 
+from collections import namedtuple
+
 from django.db import models
 from django.conf import settings
 from django.db.models import Q
@@ -77,6 +79,9 @@ class ShareableManager(models.Manager):
 # ----------------------------------------------------------
 
 
+AccessibilityInfo = namedtuple("Accessibility", ["has_access", "accessibility"])
+
+
 class Shareable(models.Model):
 
     # _____ Constants __________
@@ -343,36 +348,35 @@ class Shareable(models.Model):
 
         if hasattr(self, "author") and self.author == user:
             if self.sharing == Shareable.PRIVATE:
-                return (True, "private")
+                return AccessibilityInfo(True, "private")
             elif self.sharing == Shareable.PUBLIC:
-                return (True, "public")
+                return AccessibilityInfo(True, "public")
             else:
-                return (True, "confidential")
-
+                return AccessibilityInfo(True, "confidential")
         else:
             if self.sharing == Shareable.PRIVATE:
-                return (False, None)
+                return AccessibilityInfo(False, None)
             elif self.sharing == Shareable.PUBLIC:
-                return (True, "public")
+                return AccessibilityInfo(True, "public")
             elif not user.is_anonymous():
                 if self.shared_with.filter(id=user.id).exists() or (
                     self.shared_with_team.filter(members=user).count() > 0
                 ):
-                    return (True, "confidential")
+                    return AccessibilityInfo(True, "confidential")
 
-        return (False, None)
+        return AccessibilityInfo(False, None)
 
     def _accessibility_for_team(self, team, without_usable=False):
         """Team specific accessibility check """
 
         if self.sharing == Shareable.PRIVATE:
-            return (False, None)
+            return AccessibilityInfo(False, None)
         elif self.sharing == Shareable.PUBLIC:
-            return (True, "public")
+            return AccessibilityInfo(True, "public")
         elif self.shared_with_team.filter(id=team.id).exists():
-            return (True, "confidential")
+            return AccessibilityInfo(True, "confidential")
 
-        return (False, None)
+        return AccessibilityInfo(False, None)
 
     def _update_sharing(self, sharing, users, teams):
         if sharing != self.sharing: