Upgrade - Permission Defaults: Validate permissions array in restore() method to mitigate warning.

This commit is contained in:
Nate
2020-02-15 08:09:36 -07:00
parent e819d12dd8
commit 4cf03add38
+37 -35
View File
@@ -82,45 +82,47 @@
//restore default permissions //restore default permissions
$x = 0; $x = 0;
foreach ($apps as $row) { foreach ($apps as $row) {
foreach ($row['permissions'] as $permission) { if (is_array($row['permissions']) && @sizeof($row['permissions']) != 0) {
//set the variables foreach ($row['permissions'] as $permission) {
if ($permission['groups']) { //set the variables
foreach ($permission['groups'] as $group_name) { if ($permission['groups']) {
//check group protection foreach ($permission['groups'] as $group_name) {
$sql = "select group_uuid, group_protected from v_groups "; //check group protection
$sql .= "where group_name = :group_name "; $sql = "select group_uuid, group_protected from v_groups ";
$parameters['group_name'] = $group_name; $sql .= "where group_name = :group_name ";
$database = new database;
$result = $database->select($sql, $parameters, 'row');
if (is_array($result) && @sizeof($result) != 0) {
$group_uuid = $result['group_uuid'];
$group_protected = $result['group_protected'] == 'true' ? true : false;
}
else {
$group_protected = false;
}
unset($sql, $parameters);
if (!$group_protected) {
//if the item uuid is not currently in the db then add it
$sql = "select count(*) from v_group_permissions ";
$sql .= "where permission_name = :permission_name ";
$sql .= "and group_name = :group_name ";
$parameters['permission_name'] = $permission['name'];
$parameters['group_name'] = $group_name; $parameters['group_name'] = $group_name;
$database = new database; $database = new database;
$num_rows = $database->select($sql, $parameters, 'column'); $result = $database->select($sql, $parameters, 'row');
if (is_array($result) && @sizeof($result) != 0) {
$group_uuid = $result['group_uuid'];
$group_protected = $result['group_protected'] == 'true' ? true : false;
}
else {
$group_protected = false;
}
unset($sql, $parameters); unset($sql, $parameters);
if ($num_rows == 0) { if (!$group_protected) {
//build default permissions insert array //if the item uuid is not currently in the db then add it
$array['group_permissions'][$x]['group_permission_uuid'] = uuid(); $sql = "select count(*) from v_group_permissions ";
$array['group_permissions'][$x]['permission_name'] = $permission['name']; $sql .= "where permission_name = :permission_name ";
$array['group_permissions'][$x]['group_name'] = $group_name; $sql .= "and group_name = :group_name ";
if (is_uuid($group_uuid)) { $parameters['permission_name'] = $permission['name'];
$array['group_permissions'][$x]['group_uuid'] = $group_uuid; $parameters['group_name'] = $group_name;
} $database = new database;
$x++; $num_rows = $database->select($sql, $parameters, 'column');
unset($sql, $parameters);
if ($num_rows == 0) {
//build default permissions insert array
$array['group_permissions'][$x]['group_permission_uuid'] = uuid();
$array['group_permissions'][$x]['permission_name'] = $permission['name'];
$array['group_permissions'][$x]['group_name'] = $group_name;
if (is_uuid($group_uuid)) {
$array['group_permissions'][$x]['group_uuid'] = $group_uuid;
}
$x++;
}
} }
} }
} }