I just wanted to share a quick solution to a probably common problem;
Problem description:
I wanted to be able to provide full EDIT access to a particular node, based upon the user having "ownership" of that node, whilst not authoring it, yet restricting them from editing other nodes of the same type, but which were not assigned to them.
Problem example:
Each Organisation has one or more Organisation Contacts. These contacts are Users in the system. The Organisation is a content type in the system. Each user has an optional field that correlates to the Organisation that they are an Org Contact for. The user also has a role set ("Organisation") when they become an Org Contact.
Solution:
In a custom module, use a call to the hook_node_access like so:
function mymodule_node_access($node,$op,$account){
//implement hook_node_access
// https://docs.backdropcms.org/api/backdrop/core%21modules%21node%21node.api.php/function/hook_node_access/1
// this does a check against the Organisation field of a Org Contact, and gives them access to UPDATE the org
foreach ($account->roles as $k=>$role) { //skip over the User account Roles
if($role=="organisation"){
$u=user_load($account->uid); //load the full user now, so we have access to their custom fields
if(isset($u->field_organisation['und'][0])){ // field_organisation is the field set to show which Org they are a Contact of
$oid=$u->field_organisation['und'][0]['target_id']; // the orgID
if($oid==$node->nid && $op=="update"){ // do the work of allowing them access to the UPDATE mode
return NODE_ACCESS_ALLOW;
}
}
}
}
}
Recent comments
Thanks Alejandro. That was the clues I needed.
Ubercart - Programmatically add product to cart and straight to Checkout
Have you tried uc_cart_add_item()? You need to provide the nid of the product. Then you can use backdrop_goto('cart/checkout'); to send the user to the checkout screen. uc_cart_add_item...
Ubercart - Programmatically add product to cart and straight to Checkout
No problem, let's see how it evolves. I'd be happy to provide a suggested version if i could. I will keep that in mind and try learn this hook chain hopefully very soon. I will...
File hashing uploads made through TinyMCE
I could request hashing support, but that's the lazy way 🤣 I would appreciate it if you as an active maintainer would 'officially' add a hashing support...
File hashing uploads made through TinyMCE
Hi, i understand the updating obstacle - not worth mentioning - hence it is a wacky (but working) patch until i know what to do. :-) One of my biggest wishes is to understand the hook...
File hashing uploads made through TinyMCE