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
Tags 4.3.5
No related merge requests found
...@@ -216,7 +216,8 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View { ...@@ -216,7 +216,8 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
$defaults['privacy_values'] = CRM_Core_SelectValues::privacy(); $defaults['privacy_values'] = CRM_Core_SelectValues::privacy();
//Show blocks only if they are visible in edit form //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' 'contact_edit_options'
); );
...@@ -262,16 +263,23 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View { ...@@ -262,16 +263,23 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
$allTabs = array(); $allTabs = array();
$weight = 10; $weight = 10;
$this->_viewOptions = CRM_Core_BAO_Setting::valueOptions(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, $this->_viewOptions = CRM_Core_BAO_Setting::valueOptions(
'contact_view_options', TRUE 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']; $changeLog = $this->_viewOptions['log'];
$this->assign_by_ref('changeLog', $changeLog); $this->assign_by_ref('changeLog', $changeLog);
$components = CRM_Core_Component::getEnabledComponents(); $components = CRM_Core_Component::getEnabledComponents();
foreach ($components as $name => $component) { foreach ($components as $name => $component) {
if ( CRM_Utils_Array::value($name, $this->_viewOptions) && if (
CRM_Core_Permission::access($component->name) CRM_Utils_Array::value($name, $this->_viewOptions) &&
CRM_Core_Permission::access($component->name)
) { ) {
$elem = $component->registerTab(); $elem = $component->registerTab();
...@@ -317,10 +325,11 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View { ...@@ -317,10 +325,11 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View {
); );
foreach ($rest as $k => $v) { foreach ($rest as $k => $v) {
if (CRM_Utils_Array::value($k, $this->_viewOptions)) { if ($accessCiviCRM && CRM_Utils_Array::value($k, $this->_viewOptions)) {
$allTabs[] = array( $allTabs[] = array(
'id' => $k, '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}" "reset=1&snippet=1&cid={$this->_contactId}"
), ),
'title' => $v, 'title' => $v,
......
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
<title>CiviCRM</title> <title>CiviCRM</title>
<access_callback>CRM_Core_Permission::checkMenu</access_callback> <access_callback>CRM_Core_Permission::checkMenu</access_callback>
<access_arguments>access CiviCRM</access_arguments> <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_callback>CRM_Contact_Page_DashBoard</page_callback>
<page_arguments>null</page_arguments> <page_arguments>null</page_arguments>
<is_ssl>false</is_ssl> <is_ssl>false</is_ssl>
...@@ -82,6 +80,10 @@ p <item> ...@@ -82,6 +80,10 @@ p <item>
<item> <item>
<path>civicrm/contact/add</path> <path>civicrm/contact/add</path>
<title>New Contact</title> <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_callback>CRM_Contact_Form_Contact</page_callback>
<page_arguments>addSequence=1</page_arguments> <page_arguments>addSequence=1</page_arguments>
</item> </item>
...@@ -142,6 +144,10 @@ p <item> ...@@ -142,6 +144,10 @@ p <item>
<path>civicrm/contact/view</path> <path>civicrm/contact/view</path>
<path_arguments>cid=%%cid%%</path_arguments> <path_arguments>cid=%%cid%%</path_arguments>
<title>Contact Summary</title> <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> <page_callback>CRM_Contact_Page_View_Summary</page_callback>
</item> </item>
<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