def setUpBasicData(self): # Make a tag self.tag = Tag(name='tag') self.tag.save() # Make a simple credential self.cred = Cred(title='secret', username='******', password='******', group=self.group) self.cred.save() # Make a cred that'll be tagged self.tagcred = Cred(title='tagged', password='******', group=self.group) self.tagcred.save() self.tagcred.tags.add(self.tag) self.tagcred.save() # A cred that attempts script injection self.injectcred = Cred( title='<script>document.write("BADTITLE!")</script>Bold!', username='******', password='******', group=self.group ) self.injectcred.save() # A cred with markdown self.markdowncred = Cred( title='Markdown Cred', password='******', group=self.group, description='# Test', descriptionmarkdown=True, ) self.markdowncred.save() # Add a Unicode credential self.unicodecred = Cred( title='Unicode ‑ Cred', password='******', group=self.group, description='Γαζέες καὶ μυρτιὲς δὲν θὰ βρῶ πιὰ στὸ χρυσαφὶ ξέφωτο', ) self.unicodecred.save() CredChangeQ.objects.add_to_changeq(self.cred) self.viewedcred = Cred(title='Viewed', password='******', group=self.group) self.viewedcred.save() self.changedcred = Cred(title='Changed', password='******', group=self.group) self.changedcred.save() CredAudit(audittype=CredAudit.CREDADD, cred=self.viewedcred, user=self.unobody).save() CredAudit(audittype=CredAudit.CREDADD, cred=self.changedcred, user=self.unobody).save() CredAudit(audittype=CredAudit.CREDVIEW, cred=self.viewedcred, user=self.unorm).save() CredAudit(audittype=CredAudit.CREDVIEW, cred=self.changedcred, user=self.unorm).save() CredAudit(audittype=CredAudit.CREDCHANGE, cred=self.changedcred, user=self.ustaff).save() self.logadd = CredAudit(audittype=CredAudit.CREDADD, cred=self.cred, user=self.ustaff) self.logview = CredAudit(audittype=CredAudit.CREDVIEW, cred=self.cred, user=self.ustaff) self.logadd.save() self.logview.save()
from django.db import IntegrityError from staff.importloaders import keepass import django import os django.setup() res = keepass(open(os.getenv("RATTIC_KEEPASS_FILE"), "rb"), os.getenv("RATTIC_KEEPASS_PASSWORD")) owner_group = Group.objects.get(name=os.getenv("RATTIC_KEEPASS_GROUP")) print("=> import Tag") for tag_name in res.get("tags", []): try: Tag(name=tag_name).save() except IntegrityError as e: if e.message.endswith(" is not unique"): pass else: print(tag_name, e) except Exception as e: print(tag_name, e) print("=> import Entry") for entry in res.get("entries", []): try: kwargs = {} tags = [] for k, v in entry.items(): if k == "tags":