elseif ($status == self::DISABLED) {
$mask |= CRM_Core_Action::ENABLE;
}
- $mask = $mask & $permissionMask;
+ // temporary hold the value of $mask.
+ $tempMask = $mask;
}
}
) {
continue;
}
+ if ($status != self::INACTIVE && $links) {
+ // assign the original value to $mask
+ $mask = $tempMask;
+ // display action links if $cid has edit permission for the relationship.
+ if (!($permissionMask & CRM_Core_Permission::EDIT) && CRM_Contact_BAO_Contact_Permission::allow($cid, CRM_Core_Permission::EDIT)) {
+ $permissions[] = CRM_Core_Permission::EDIT;
+ $permissions[] = CRM_Core_Permission::DELETE;
+ $permissionMask = CRM_Core_Action::mask($permissions);
+ }
+ $mask = $mask & $permissionMask;
+ }
$values[$rid]['id'] = $rid;
$values[$rid]['cid'] = $cid;
$values[$rid]['contact_id_a'] = $relationship->contact_id_a;
$this->_display_name_a = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $this->_contactId, 'display_name');
$this->assign('display_name_a', $this->_display_name_a);
+ //get the relationship values.
+ $this->_values = array();
+ if ($this->_relationshipId) {
+ $params = array('id' => $this->_relationshipId);
+ CRM_Core_DAO::commonRetrieve('CRM_Contact_DAO_Relationship', $params, $this->_values);
+ }
// Check for permissions
if (in_array($this->_action, array(CRM_Core_Action::ADD, CRM_Core_Action::UPDATE, CRM_Core_Action::DELETE))) {
- if (!CRM_Contact_BAO_Contact_Permission::allow($this->_contactId, CRM_Core_Permission::EDIT)) {
+ if (!CRM_Contact_BAO_Contact_Permission::allow($this->_contactId, CRM_Core_Permission::EDIT)
+ && !CRM_Contact_BAO_Contact_Permission::allow($this->_values['contact_id_b'], CRM_Core_Permission::EDIT)) {
CRM_Core_Error::statusBounce(ts('You do not have the necessary permission to edit this contact.'));
}
}
$this->_caseId = CRM_Utils_Request::retrieve('caseID', 'Integer', $this);
- //get the relationship values.
- $this->_values = array();
- if ($this->_relationshipId) {
- $params = array('id' => $this->_relationshipId);
- CRM_Core_DAO::commonRetrieve('CRM_Contact_DAO_Relationship', $params, $this->_values);
- }
-
if (!$this->_rtypeId) {
$params = $this->controller->exportValues($this->_name);
if (isset($params['relationship_type_id'])) {
| see the CiviCRM license FAQ at http://civicrm.org/licensing |
+--------------------------------------------------------------------+
*}
-<div id="crm-contactinfo-content" {if $permission EQ 'edit'} class="crm-inline-edit" data-edit-params='{ldelim}"cid": "{$contactId}", "class_name": "CRM_Contact_Form_Inline_ContactInfo"{rdelim}'{/if}>
+{* data-edit-params to reload this info whenever relationship gets updated *}
+<div id="crm-contactinfo-content" {if $permission EQ 'edit'} class="crm-inline-edit" {/if} data-edit-params='{ldelim}"cid": "{$contactId}", "class_name": "CRM_Contact_Form_Inline_ContactInfo"{rdelim}'>
<div class="crm-clear crm-inline-block-content" {if $permission EQ 'edit'}title="{ts}Edit info{/ts}"{/if}>
{if $permission EQ 'edit'}
<div class="crm-edit-help">