Beispiel #1
0
    def save_model(self, request, obj, form, change=True):
        """
        Save the model and assign delete permissions to particular objects.
        """
        if request.GET.get('risk'):
            obj.risk = Risk.objects.get(pk=request.GET.get('risk'))
        obj.risk.prescription = self.prescription
        obj.save()

        # If can_delete is set, allow the user to delete this object.
        if self.can_delete:
            opts = self.opts
            group = Group.objects.get(name='Users')
            perm = get_permission_codename('delete', opts)
            assign_perm("%s.%s" % (opts.app_label, perm), group, obj)
Beispiel #2
0
def update_permissions(prescription, admin_site, state, action=remove_perm):
    """
    Update a prescription's object permissions based on the state of the
    ePFP.
    """
    # Loop over each model admin and check when it should be disabled,
    # adding/removing permissions as necessary.
    from pbs.prescription.admin import SavePrescriptionMixin
    group = Group.objects.get(name="Users")
    for model, model_admin in admin_site._registry.items():
        if isinstance(model_admin, SavePrescriptionMixin):
            if model_admin.can_delete and model_admin.lock_after == state:
                opts = model_admin.opts
                perm = get_permission_codename("delete", opts)
                if hasattr(model_admin, "prescription_filter_field"):
                    options = {
                        model_admin.prescription_filter_field: prescription
                    }
                else:
                    options = {"prescription": prescription}
                for obj in model.objects.filter(**options):
                    action("%s.%s" % (opts.app_label, perm), group, obj)
Beispiel #3
0
def update_permissions(prescription, admin_site, state, action=remove_perm):
    """
    Update a prescription's object permissions based on the state of the
    ePFP.
    """
    # Loop over each model admin and check when it should be disabled,
    # adding/removing permissions as necessary.
    from pbs.prescription.admin import SavePrescriptionMixin
    group = Group.objects.get(name="Users")
    for model, model_admin in admin_site._registry.items():
        if isinstance(model_admin, SavePrescriptionMixin):
            if model_admin.can_delete and model_admin.lock_after == state:
                opts = model_admin.opts
                perm = get_permission_codename("delete", opts)
                if hasattr(model_admin, "prescription_filter_field"):
                    options = {
                        model_admin.prescription_filter_field: prescription
                    }
                else:
                    options = {"prescription": prescription}
                for obj in model.objects.filter(**options):
                    action("%s.%s" % (opts.app_label, perm), group, obj)