$query = "SELECT distinct( contact_id )
FROM civicrm_dashboard_contact WHERE dashboard_id = {$dashlet->id}";
$dao = CRM_Core_DAO::executeQuery($query);
- $skipContactIDs = array();
while ($dao->fetch()) {
- if(array_key_exists($dao->contact_id, $contactIDs)) {
+ if (array_key_exists($dao->contact_id, $contactIDs)) {
unset($contactIDs[$dao->contact_id]);
}
}
$this->assertEquals($dashboard['values'][$dashboard['id']]['is_active'], 1);
}
+ /**
+ * CRM-19534.
+ *
+ * Ensure that Dashboard create works fine for non admins
+ */
+ public function testDashboardCreateByNonAdmins() {
+ $loggedInContactID = $this->createLoggedInUser();
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = array();
+ $params = array(
+ 'label' => 'New Dashlet element',
+ 'name' => 'New Dashlet element',
+ 'url' => 'civicrm/report/list&reset=1&compid=99',
+ 'fullscreen_url' => 'civicrm/report/list&compid=99&reset=1&context=dashletFullscreen',
+ );
+ $dashboard = $this->callAPISuccess('dashboard', 'create', $params);
+ $this->assertTrue(is_numeric($dashboard['id']), "In line " . __LINE__);
+ $this->assertTrue($dashboard['id'] > 0, "In line " . __LINE__);
+
+ $this->callAPISuccess('dashboard', 'create', $params);
+ $this->assertEquals($dashboard['values'][$dashboard['id']]['is_active'], 1);
+ }
+
/**
* CRM-19217.
*