Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Ensure case-insensitive matching for highlighting attributes when rec…
…onciling unresolved requests (CO-2434) (COmanage#36)

* Ensure case-insensitive matching for highlighting attributes when reconciling unresolved requests (CO-2434)

* Put array utility function in an ArrayUtil class (CO-2434)
arlen committed May 31, 2022
1 parent b46bf15 commit 916d684
Showing 2 changed files with 47 additions and 1 deletion.
44 changes: 44 additions & 0 deletions app/src/Lib/Util/ArrayUtil.php
@@ -0,0 +1,44 @@
<?php
/**
* COmanage Match Array Utility Functions
*
* Portions licensed to the University Corporation for Advanced Internet
* Development, Inc. ("UCAID") under one or more contributor license agreements.
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership.
*
* UCAID licenses this file to you under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* @link https://www.internet2.edu/comanage COmanage Project
* @package match
* @since COmanage Match v1.0.0
* @license Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/

declare(strict_types = 1);

namespace App\Lib\Util;

class ArrayUtil {
/**
* Case-insensitive array_unique function
*
* @since COmanage Match v1.0.0
* @param array $array one-dimensional array
* @return array array with values converted to lower-case
*/
public static function array_iunique($array) {
$lowercaseArray = array_map('strtolower', $array);
return array_intersect_key($array, array_unique($lowercaseArray));
}
}
4 changes: 3 additions & 1 deletion app/templates/Matchgrids/reconcile.php
@@ -27,6 +27,8 @@

declare(strict_types = 1);

use \App\Lib\Util\ArrayUtil;

// extract the attribute field names into a simple array
$fieldNames = array();
foreach ($vv_candidates as $candidate) {
@@ -57,7 +59,7 @@

// Test for content and equality between the row's attribute values and
// set the third "match?" column to true (1) if non-empty equality found
$canAttr[$i][2] = !empty($canAttr[$i][1][0]) && count(array_unique($canAttr[$i][1])) === 1 ? 1 : 0;
$canAttr[$i][2] = !empty($canAttr[$i][1][0]) && count(ArrayUtil::array_iunique($canAttr[$i][1])) === 1 ? 1 : 0;

}
?>

0 comments on commit 916d684

Please sign in to comment.