Skip to content
Snippets Groups Projects

Resolve "Public keys not visible to others"

Merged Frank Sauerburger requested to merge 13-public-keys-not-visible-to-others into master
3 files
+ 50
3
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 40
0
# Generated by Django 3.1.3 on 2021-03-02 20:28
import logging
from django.db import migrations
from django.contrib.auth.models import Group, User
from guardian.utils import get_anonymous_user
from guardian.shortcuts import get_objects_for_user, assign_perm
from pgp import models as pgp
from ssh import models as ssh
from owlca import models as owlca
def add_any_group(*args):
group, created = Group.objects.get_or_create(name='any-user')
if created:
logging.info('any-user Group created')
for user in User.objects.all():
logging.info(f"Adding {user} to any-user Group")
group.user_set.add(user)
propagate_klasses = {
"view_publickey": pgp.PublicKey,
"view_sshpublickey": ssh.SSHPublicKey,
"view_certificationauthority": owlca.CertificationAuthority,
}
group.save()
anon = get_anonymous_user()
for perm, klass in propagate_klasses.items():
objs = get_objects_for_user(anon, perm, klass)
assign_perm(perm, group, objs)
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.RunPython(add_any_group),
]
Loading