diff --git a/classes/core/PKPApplication.inc.php b/classes/core/PKPApplication.inc.php index 8d62ceb..18dc2cd 100644 --- a/classes/core/PKPApplication.inc.php +++ b/classes/core/PKPApplication.inc.php @@ -19,7 +19,7 @@ define('REALLY_BIG_NUMBER', 10000); define('ROUTE_COMPONENT', 'component'); define('ROUTE_PAGE', 'page'); -define('ASSOC_TYPE_ROLE', 0x0100001); +define('ASSOC_TYPE_USER', 0x00001000); // This value used because of bug #6068 define('ASSOC_TYPE_USER_GROUP', 0x0100002); define('ASSOC_TYPE_CITATION', 0x0100003); diff --git a/classes/security/UserGroupDAO.inc.php b/classes/security/UserGroupDAO.inc.php index 3bc2a42..6fd8c1e 100755 --- a/classes/security/UserGroupDAO.inc.php +++ b/classes/security/UserGroupDAO.inc.php @@ -352,7 +352,7 @@ class UserGroupDAO extends DAO { function &getUsersById($userGroupId = null, $pressId = null, $searchType = null, $search = null, $searchMatch = null, $dbResultRange = null) { $users = array(); - $paramArray = array('interest'); + $paramArray = array(ASSOC_TYPE_USER, 'interest'); if (isset($userGroupId)) $paramArray[] = (int) $userGroupId; if (isset($pressId)) $paramArray[] = (int) $pressId; // For security / resource usage reasons, a user group or press ID @@ -400,7 +400,7 @@ class UserGroupDAO extends DAO { $result =& $this->retrieveRange( 'SELECT DISTINCT u.* FROM users AS u - LEFT JOIN controlled_vocabs cv ON (cv.assoc_id = u.user_id AND cv.symbolic = ?) + LEFT JOIN controlled_vocabs cv ON (cv.assoc_type = ? AND cv.assoc_id = u.user_id AND cv.symbolic = ?) LEFT JOIN controlled_vocab_entries cve ON (cve.controlled_vocab_id = cv.controlled_vocab_id) LEFT JOIN controlled_vocab_entry_settings cves ON (cves.controlled_vocab_entry_id = cve.controlled_vocab_entry_id), user_groups AS ug, user_user_groups AS uug WHERE ug.user_group_id = uug.user_group_id AND u.user_id = uug.user_id' . (isset($userGroupId) ? ' AND ug.user_group_id = ?' : '') . (isset($pressId) ? ' AND ug.press_id = ?' : '') . ' ' . $searchSql, diff --git a/classes/user/InterestDAO.inc.php b/classes/user/InterestDAO.inc.php index c8ea761..8de6578 100644 --- a/classes/user/InterestDAO.inc.php +++ b/classes/user/InterestDAO.inc.php @@ -22,7 +22,7 @@ define('CONTROLLED_VOCAB_INTEREST', 'interest'); class InterestDAO extends ControlledVocabDAO { function build($userId) { - return parent::build(CONTROLLED_VOCAB_INTEREST, ROLE_ID_REVIEWER, $userId); + return parent::build(CONTROLLED_VOCAB_INTEREST, ASSOC_TYPE_USER, $userId); } function getInterests($userId) { diff --git a/classes/user/PKPUserDAO.inc.php b/classes/user/PKPUserDAO.inc.php index 0b51d4b..4de7f42 100644 --- a/classes/user/PKPUserDAO.inc.php +++ b/classes/user/PKPUserDAO.inc.php @@ -404,7 +404,7 @@ class PKPUserDAO extends DAO { break; case USER_FIELD_INTERESTS: $sql .=', controlled_vocabs cv, controlled_vocab_entries cve, controlled_vocab_entry_settings cves - WHERE cv.symbolic = \'interest\' AND cv.assoc_id = u.user_id AND cve.controlled_vocab_id = cv.controlled_vocab_id + WHERE cv.assoc_type = ' . ASSOC_TYPE_USER . ' AND cv.symbolic = \'interest\' AND cv.assoc_id = u.user_id AND cve.controlled_vocab_id = cv.controlled_vocab_id AND cves.controlled_vocab_entry_id = cve.controlled_vocab_entry_id AND LOWER(cves.setting_value) ' . ($match == 'is' ? '=' : 'LIKE') . ' LOWER(?)'; $var = $match == 'is' ? $value : "%$value%"; break;