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
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()
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)))
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)))