JReviews logo Docs
Menu
Version

jreviews:permission:field.write

Filters whether a user has permission to see and edit a custom field in listing/review submit and edit forms.

Filter
Field Permissions
Since 6.0.0

You need to have a working knowledge of Hooks before you get started.

Fires when checking if user can access a custom field in submit/edit forms

Parameters

Name Type Description
$canWrite bool Whether the user can edit the field
$user \JReviews\App\Models\User The user attempting to edit
$field \JReviews\App\Models\Field The custom field

Boilerplate Code

Use the boilerplate code to start using the filter, and add your own logic to modify the first argument and return it.

fwd_add_filter('jreviews:permission:field.write', function($canWrite, $user, $field)
{
    // Your code here
    
    return $canWrite;
});
Development & Support
Customizations are not included with support. We provide this information to make it easier for developers to extend the functionality. From time to time we may have some availability for custom work. Get in touch to see if there's an opportunity to work together.

Examples

Prevent Changes to Custom Fields Content on Listing Updates

In this example users can fill out the content for fields `jr_fieldone`, `jr_fieldtwo`, `jr_fieldthree` while creating a new listing, but they are prevented from changing them afterwards. Only administrators will have access to the fields while editing listings. Note: You may need to check the request context to determine if this is a create or update operation.

fwd_add_filter('jreviews:permission:field.write', function($canWrite, $user, $field)
{
    $fieldNames = ['jr_fieldone', 'jr_fieldtwo', 'jr_fieldthree'];
    
    // Allow managers full access
    if ($user->isManager()) {
        return $canWrite;
    }
    
    // Check if this is an update operation (you may need to access the request)
    $isUpdate = request()->route()->getName() === 'listing.update';
    
    // Allow field access during creation, but not updates
    if ($isUpdate && in_array($field->name, $fieldNames)) {
        return false;
    }
    
    return $canWrite;
}, 10, 3);

Source Files

  • app/Policies/FieldPolicy.php