Ejemplo n.º 1
0
 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())
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
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()
Ejemplo n.º 6
0
 def has_field_editable(self, field):
     return ModelProtectionProfile.has_editable(get_model_id(self.model), get_user(), field)
Ejemplo n.º 7
0
 def save(self, **kwargs):
     user = get_user()
     if user and self.user != user:
         raise Exception("Invalid user")
     super(UserProfile, self).save(**kwargs)