jreviews:permission:field.write
Filters whether a user has permission to see and edit a custom field in listing/review submit and edit forms.
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;
});
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