def has_secret(self): """ Check current user has *secret* permission on given app :return: """ perm_name = "%s:secret" % (self.get_app_id().replace(".", ":")) return perm_name in Permission.get_effective_permissions(get_user())
def get_query_set(self): s = super(UserProfileManager, self) user = get_user() if user: # Create profile when necessary try: s.get_query_set().get(user=user) except UserProfile.DoesNotExist: UserProfile(user=user).save() return s.get_query_set().filter(user=user) else: return s.get_query_set()
def log(self, message, user=None, system=None, managed_object=None, op=None): if not user: user = get_user() if hasattr(user, "username"): user = user.username if not user: user = "******" if not isinstance(managed_object, str): managed_object = smart_text(managed_object) ObjectLog( object=self.id, user=user, ts=datetime.datetime.now(), message=message, system=system, managed_object=managed_object, op=op, ).save()
def log(cls, sender, instance, op, changes): """ Log into audit trail """ user = get_user() # Retrieve user from thread local storage if not user or not user.is_authenticated(): return # No user initialized, no audit trail if not changes: logger.debug("Nothing to log for %s", instance) return now = datetime.datetime.now() model_id = get_model_id(sender) cls._get_collection().insert( { "timestamp": now, "user": user.username, "model_id": model_id, "object": str(instance.pk), "op": op, "changes": changes, "expires": now + cls._model_ttls[model_id] }, w=0)
def save(self, *args, **kwargs): """ save model, compute body's diff and save event history """ from noc.core.middleware.tls import get_user from noc.kb.models.kbentryhistory import KBEntryHistory user = get_user() if self.id: old_body = KBEntry.objects.get(id=self.id).body else: old_body = "" super(KBEntry, self).save(*args, **kwargs) if old_body != self.body: diff = "\n".join( difflib.unified_diff(self.body.splitlines(), old_body.splitlines())) KBEntryHistory( kb_entry=self, user=user, diff=diff, timestamp=datetime.datetime.now().replace(microsecond=0), ).save()
def has_field_editable(self, field): return ModelProtectionProfile.has_editable(get_model_id(self.model), get_user(), field)
def save(self, **kwargs): user = get_user() if user and self.user != user: raise Exception("Invalid user") super(UserProfile, self).save(**kwargs)