Ejemplo n.º 1
0
    ctype = ContentType.objects.get_for_model(DockitPermission)
    # The codenames and ctypes that should exist.
    for klass in documents:
        for perm in _get_all_permissions(klass._meta):
            searched_perms.append(perm)

    # Find all the Permissions that have a context_type for a model we're
    # looking for.  We don't need to check for codenames since we already have
    # a list of the ones we're going to create.
    all_perms = set(auth_app.Permission.objects.filter(content_type=ctype).values_list("codename", flat=True))

    for codename, name in searched_perms:
        # If the permissions exists, move on.
        if codename in all_perms:
            continue
        p = auth_app.Permission.objects.create(codename=codename, name=name, content_type=ctype)
        if verbosity >= 2:
            print "Adding permission '%s'" % p


def on_document_registered(document, **kwargs):
    create_permissions([document], 1)


document_registered.connect(on_document_registered)

try:
    create_permissions(COLLECTIONS.values(), 1)
except DatabaseError:
    pass