Skip to content
Snippets Groups Projects
Commit 63cd4fcf authored by lobo's avatar lobo
Browse files

CRM-10935 - tweak so we dont display other tabs in summary if no access CiviCRM

----------------------------------------
* CRM-10935: Create new Core Permission - CiviCRM: Access own Contact or both "CiviCRM: View own Contact"  and "CiviCRM: Edit own Contact"
  http://issues.civicrm.org/jira/browse/CRM-10935
parent aafd773a
No related branches found
No related tags found
No related merge requests found
......@@ -216,7 +216,8 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
$defaults['privacy_values'] = CRM_Core_SelectValues::privacy();
//Show blocks only if they are visible in edit form
$this->_editOptions = CRM_Core_BAO_Setting::valueOptions(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
$this->_editOptions = CRM_Core_BAO_Setting::valueOptions(
CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'contact_edit_options'
);
......@@ -262,16 +263,23 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
$allTabs = array();
$weight = 10;
$this->_viewOptions = CRM_Core_BAO_Setting::valueOptions(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'contact_view_options', TRUE
$this->_viewOptions = CRM_Core_BAO_Setting::valueOptions(
CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME,
'contact_view_options',
TRUE
);
// show the tabs only if user has generic access to CiviCRM
$accessCiviCRM = CRM_Core_Permission::check('access CiviCRM');
$changeLog = $this->_viewOptions['log'];
$this->assign_by_ref('changeLog', $changeLog);
$components = CRM_Core_Component::getEnabledComponents();
foreach ($components as $name => $component) {
if ( CRM_Utils_Array::value($name, $this->_viewOptions) &&
CRM_Core_Permission::access($component->name)
if (
CRM_Utils_Array::value($name, $this->_viewOptions) &&
CRM_Core_Permission::access($component->name)
) {
$elem = $component->registerTab();
......@@ -317,10 +325,11 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
);
foreach ($rest as $k => $v) {
if (CRM_Utils_Array::value($k, $this->_viewOptions)) {
if ($accessCiviCRM && CRM_Utils_Array::value($k, $this->_viewOptions)) {
$allTabs[] = array(
'id' => $k,
'url' => CRM_Utils_System::url("civicrm/contact/view/$k",
'url' => CRM_Utils_System::url(
"civicrm/contact/view/$k",
"reset=1&snippet=1&cid={$this->_contactId}"
),
'title' => $v,
......
......@@ -6,8 +6,6 @@
<title>CiviCRM</title>
<access_callback>CRM_Core_Permission::checkMenu</access_callback>
<access_arguments>access CiviCRM</access_arguments>
<access_arguments>edit my contact</access_arguments>
<access_arguments>view my contact</access_arguments>
<page_callback>CRM_Contact_Page_DashBoard</page_callback>
<page_arguments>null</page_arguments>
<is_ssl>false</is_ssl>
......@@ -82,6 +80,10 @@ p <item>
<item>
<path>civicrm/contact/add</path>
<title>New Contact</title>
<access_callback>CRM_Core_Permission::checkMenu</access_callback>
<access_arguments>access CiviCRM</access_arguments>
<access_arguments>edit my contact</access_arguments>
<access_arguments>view my contact</access_arguments>
<page_callback>CRM_Contact_Form_Contact</page_callback>
<page_arguments>addSequence=1</page_arguments>
</item>
......@@ -142,6 +144,10 @@ p <item>
<path>civicrm/contact/view</path>
<path_arguments>cid=%%cid%%</path_arguments>
<title>Contact Summary</title>
<access_callback>CRM_Core_Permission::checkMenu</access_callback>
<access_arguments>access CiviCRM</access_arguments>
<access_arguments>edit my contact</access_arguments>
<access_arguments>view my contact</access_arguments>
<page_callback>CRM_Contact_Page_View_Summary</page_callback>
</item>
<item>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment