diff --git a/xos/tosca/resources/user.py b/xos/tosca/resources/user.py
index 53323c5..2b2a787 100644
--- a/xos/tosca/resources/user.py
+++ b/xos/tosca/resources/user.py
@@ -5,7 +5,7 @@
 sys.path.append("/opt/tosca")
 from translator.toscalib.tosca_template import ToscaTemplate
 
-from core.models import User, Site, SiteRole, SliceRole, SlicePrivilege, SitePrivilege
+from core.models import User, Site, SiteRole, SliceRole, SlicePrivilege, SitePrivilege, DashboardView, UserDashboardView
 
 from xosresource import XOSResource
 
@@ -46,6 +46,19 @@
                         sp.save()
                         self.info("Added site privilege on %s role %s for %s" % (str(dest), str(role), str(obj)))
 
+        for reqs in self.nodetemplate.requirements:
+            for (k,v) in reqs.items():
+                if (v["relationship"] == "tosca.relationships.UsesDashboard"):
+                    dashboard_name = v["node"]
+                    dashboard = self.get_xos_object(DashboardView, name=dashboard_name)
+
+                    udvs = UserDashboardView.objects.filter(user=obj, dashboardView=dashboard)
+                    if not udvs:
+                        self.info("Adding UserDashboardView from %s to %s" % (obj, dashboard))
+
+                        udv = UserDashboardView(user=obj, dashboardView=dashboard)
+                        udv.save()
+
     def create(self):
         nodetemplate = self.nodetemplate
 
