Ejemplo n.º 1
0
    def save_users(self, noAct = False):
        new_users = self._update_users

        try:
            default_role = SliceRole.objects.get(role="access")
        except:
            default_role = SliceRole.objects.get(role="default")

        slice_privs = self.sliceprivileges.all()
        slice_user_ids = [priv.user.id for priv in slice_privs]

        for user_id in new_users:
            if (user_id not in slice_user_ids):
                priv = SlicePrivilege(slice=self, user=User.objects.get(id=user_id), role=default_role)
                priv.caller = self.caller
                if (not noAct):
                    priv.save()

                print "added user id", user_id

        for priv in slice_privs:
             if (priv.role.id != default_role.id):
                 # only mess with 'default' users; don't kill an admin
                 continue

             if (priv.user.id not in new_users):
                 if (not noAct):
                     priv.delete()

                 print "deleted user id", user_id
Ejemplo n.º 2
0
    def postprocess(self, obj):
        rolemap = ( ("tosca.relationships.AdminPrivilege", "admin"), ("tosca.relationships.AccessPrivilege", "access"),
                    ("tosca.relationships.PIPrivilege", "pi"), ("tosca.relationships.TechPrivilege", "tech") )
        for (rel, role) in rolemap:
            for obj_name in self.get_requirements(rel):
                dest = self.engine.name_to_xos_model(self.user, obj_name)
                if dest.__class__.__name__ == "Slice":
                    role_obj = self.get_xos_object(SliceRole, role=role)
                    if not SlicePrivilege.objects.filter(user=user, role=role_obj, slice=dest):
                        sp = SlicePrivilege(user=obj, role=role_obj, slice=dest)
                        sp.save()
                        self.info("Added slice privilege on %s role %s for %s" % (str(dest), str(role), str(obj)))
                elif dest.__class__.__name__ == "Site":
                    role_obj = self.get_xos_object(SiteRole, role=role)
                    if not SitePrivilege.objects.filter(user=obj, role=role_obj, site=dest):
                        sp = SitePrivilege(user=obj, role=role_obj, site=dest)
                        sp.save()
                        self.info("Added site privilege on %s role %s for %s" % (str(dest), str(role), str(obj)))

        dashboard_order = 10
        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, order=dashboard_order)
                        dashboard_order += 10
                        udv.save()
Ejemplo n.º 3
0
Archivo: user.py Proyecto: dot-Sean/xos
 def postprocess(self, obj):
     rolemap = (("tosca.relationships.AdminPrivilege", "admin"),
                ("tosca.relationships.AccessPrivilege",
                 "access"), ("tosca.relationships.PIPrivilege", "pi"),
                ("tosca.relationships.TechPrivilege", "tech"))
     for (rel, role) in rolemap:
         for obj_name in self.get_requirements(rel):
             dest = self.engine.name_to_xos_model(self.user, obj_name)
             if dest.__class__.__name__ == "Slice":
                 role_obj = self.get_xos_object(SliceRole, role=role)
                 if not SlicePrivilege.objects.filter(
                         user=user, role=role_obj, slice=dest):
                     sp = SlicePrivilege(user=obj,
                                         role=role_obj,
                                         slice=dest)
                     sp.save()
                     self.info(
                         "Added slice privilege on %s role %s for %s" %
                         (str(dest), str(role), str(obj)))
             elif dest.__class__.__name__ == "Site":
                 role_obj = self.get_xos_object(SiteRole, role=role)
                 if not SitePrivilege.objects.filter(
                         user=obj, role=role_obj, site=dest):
                     sp = SitePrivilege(user=obj, role=role_obj, site=dest)
                     sp.save()
                     self.info("Added site privilege on %s role %s for %s" %
                               (str(dest), str(role), str(obj)))
Ejemplo n.º 4
0
    def save_users(self, noAct = False):
        new_users = self._update_users

        try:
            default_role = SliceRole.objects.get(role="access")
        except:
            default_role = SliceRole.objects.get(role="default")

        slice_privs = self.sliceprivileges.all()
        slice_user_ids = [priv.user.id for priv in slice_privs]

        for user_id in new_users:
            if (user_id not in slice_user_ids):
                priv = SlicePrivilege(slice=self, user=User.objects.get(id=user_id), role=default_role)
                priv.caller = self.caller
                if (not noAct):
                    priv.save()

                print "added user id", user_id

        for priv in slice_privs:
             if (priv.role.id != default_role.id):
                 # only mess with 'default' users; don't kill an admin
                 continue

             if (priv.user.id not in new_users):
                 if (not noAct):
                     priv.delete()

                 print "deleted user id", user_id
Ejemplo n.º 5
0
    def postprocess(self, obj):
        for net_name in self.get_requirements(
                "tosca.relationships.ConnectsToNetwork"):
            net = self.get_xos_object(Network, name=net_name)
            if not NetworkSlice.objects.filter(network=net, slice=obj):
                ns = NetworkSlice(network=net, slice=obj)
                ns.save()
                self.info("Added network connection from '%s' to '%s'" %
                          (str(obj), str(net)))

        rolemap = (("tosca.relationships.AdminPrivilege", "admin"),
                   ("tosca.relationships.AccessPrivilege",
                    "access"), ("tosca.relationships.PIPrivilege", "pi"),
                   ("tosca.relationships.TechPrivilege", "tech"))
        for (rel, role) in rolemap:
            for email in self.get_requirements(rel):
                role = self.get_xos_object(SliceRole, role=role)
                user = self.get_xos_object(User, email=email)
                if not SlicePrivilege.objects.filter(
                        user=user, role=role, slice=obj):
                    sp = SlicePrivilege(user=user, role=role, slice=obj)
                    sp.save()
                    self.info("Added slice privilege on %s role %s for %s" %
                              (str(obj), str(role), str(user)))