From d573aa8b0bc9f58ee17d0afa051693db7ec82d03 Mon Sep 17 00:00:00 2001 From: Mark Crane Date: Fri, 26 Dec 2014 15:47:37 +0000 Subject: [PATCH] Run the users app defaults only once. --- core/users/app_defaults.php | 280 ++++++++++++++++++------------------ 1 file changed, 141 insertions(+), 139 deletions(-) diff --git a/core/users/app_defaults.php b/core/users/app_defaults.php index 6170a8c419..6458fe483e 100644 --- a/core/users/app_defaults.php +++ b/core/users/app_defaults.php @@ -24,152 +24,154 @@ Mark J Crane */ -//if the are no groups add the default groups - $sql = "SELECT * FROM v_groups "; - $sql .= "WHERE domain_uuid = 'null' "; - $sub_result = $db->query($sql)->fetch(); - $prep_statement = $db->prepare(check_sql($sql)); - if ($prep_statement) { - $prep_statement->execute(); - $sub_result = $prep_statement->fetchAll(PDO::FETCH_ASSOC); - if (count($sub_result) == 0) { - $x = 0; - $tmp[$x]['group_name'] = 'superadmin'; - $tmp[$x]['group_description'] = 'Super Administrator Group'; - $tmp[$x]['group_protected'] = 'false'; - $x++; - $tmp[$x]['group_name'] = 'admin'; - $tmp[$x]['group_description'] = 'Administrator Group'; - $tmp[$x]['group_protected'] = 'false'; - $x++; - $tmp[$x]['group_name'] = 'user'; - $tmp[$x]['group_description'] = 'User Group'; - $tmp[$x]['group_protected'] = 'false'; - $x++; - $tmp[$x]['group_name'] = 'public'; - $tmp[$x]['group_description'] = 'Public Group'; - $tmp[$x]['group_protected'] = 'false'; - $x++; - $tmp[$x]['group_name'] = 'agent'; - $tmp[$x]['group_description'] = 'Call Center Agent Group'; - $tmp[$x]['group_protected'] = 'false'; - foreach($tmp as $row) { - if (strlen($row['group_name']) > 0) { - $sql = "insert into v_groups "; - $sql .= "("; - $sql .= "domain_uuid, "; - $sql .= "group_uuid, "; - $sql .= "group_name, "; - $sql .= "group_description, "; - $sql .= "group_protected "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "null, "; - $sql .= "'".uuid()."', "; - $sql .= "'".$row['group_name']."', "; - $sql .= "'".$row['group_description']."', "; - $sql .= "'".$row['group_protected']."' "; - $sql .= ")"; - $db->exec(check_sql($sql)); - unset($sql); +if ($domains_processed == 1) { + //if the are no groups add the default groups + $sql = "SELECT * FROM v_groups "; + $sql .= "WHERE domain_uuid = 'null' "; + $sub_result = $db->query($sql)->fetch(); + $prep_statement = $db->prepare(check_sql($sql)); + if ($prep_statement) { + $prep_statement->execute(); + $sub_result = $prep_statement->fetchAll(PDO::FETCH_ASSOC); + if (count($sub_result) == 0) { + $x = 0; + $tmp[$x]['group_name'] = 'superadmin'; + $tmp[$x]['group_description'] = 'Super Administrator Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'admin'; + $tmp[$x]['group_description'] = 'Administrator Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'user'; + $tmp[$x]['group_description'] = 'User Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'public'; + $tmp[$x]['group_description'] = 'Public Group'; + $tmp[$x]['group_protected'] = 'false'; + $x++; + $tmp[$x]['group_name'] = 'agent'; + $tmp[$x]['group_description'] = 'Call Center Agent Group'; + $tmp[$x]['group_protected'] = 'false'; + foreach($tmp as $row) { + if (strlen($row['group_name']) > 0) { + $sql = "insert into v_groups "; + $sql .= "("; + $sql .= "domain_uuid, "; + $sql .= "group_uuid, "; + $sql .= "group_name, "; + $sql .= "group_description, "; + $sql .= "group_protected "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "null, "; + $sql .= "'".uuid()."', "; + $sql .= "'".$row['group_name']."', "; + $sql .= "'".$row['group_description']."', "; + $sql .= "'".$row['group_protected']."' "; + $sql .= ")"; + $db->exec(check_sql($sql)); + unset($sql); + } } } + unset($prep_statement, $sub_result); } - unset($prep_statement, $sub_result); - } -//if there are no permissions listed in v_group_permissions then set the default permissions - $sql = "select count(*) as count from v_group_permissions "; - $sql .= "where domain_uuid = null "; - $prep_statement = $db->prepare($sql); - $prep_statement->execute(); - $sub_result = $prep_statement->fetch(PDO::FETCH_ASSOC); - unset ($prep_statement); - if ($sub_result['count'] > 0) { - if ($display_type == "text") { - echo " Group Permissions: no change\n"; - } - } - else { - if ($display_type == "text") { - echo " Group Permissions: added\n"; - } - //no permissions found add the defaults - $db->beginTransaction(); - foreach($apps as $app) { - foreach ($app['permissions'] as $sub_row) { - foreach ($sub_row['groups'] as $group) { - //add the record - $sql = "insert into v_group_permissions "; - $sql .= "("; - $sql .= "group_permission_uuid, "; - $sql .= "domain_uuid, "; - $sql .= "permission_name, "; - $sql .= "group_name "; - $sql .= ")"; - $sql .= "values "; - $sql .= "("; - $sql .= "'".uuid()."', "; - $sql .= "null, "; - $sql .= "'".$sub_row['name']."', "; - $sql .= "'".$group."' "; - $sql .= ")"; - $db->exec($sql); - unset($sql); - } - } - } - $db->commit(); - } - -//find rows that have a null group_uuid and set the correct group_uuid - $sql = "select * from v_group_users "; - $sql .= "where group_uuid is null; "; - $prep_statement = $db->prepare(check_sql($sql)); - if ($prep_statement) { + //if there are no permissions listed in v_group_permissions then set the default permissions + $sql = "select count(*) as count from v_group_permissions "; + $sql .= "where domain_uuid = null "; + $prep_statement = $db->prepare($sql); $prep_statement->execute(); - $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); - foreach($result as $row) { - if (strlen($row['group_name']) > 0) { - //get the group_uuid - $sql = "select group_uuid from v_groups "; - $sql .= "where group_name = '".$row['group_name']."' "; - $sql .= "and domain_uuid = '".$row['domain_uuid']."' "; - $prep_statement_sub = $db->prepare($sql); - $prep_statement_sub->execute(); - $sub_result = $prep_statement_sub->fetch(PDO::FETCH_ASSOC); - unset ($prep_statement_sub); - $group_uuid = $sub_result['group_uuid']; - //set the group_uuid - $sql = "update v_group_users set "; - $sql .= "group_uuid = '".$group_uuid."' "; - $sql .= "where group_user_uuid = '".$row['group_user_uuid']."'; "; - $db->exec($sql); - unset($sql); - } - } + $sub_result = $prep_statement->fetch(PDO::FETCH_ASSOC); unset ($prep_statement); - } - -//if there are no permissions listed in v_group_permissions then set the default permissions - $sql = "select count(*) as count from v_users "; - $sql .= "where domain_uuid = '$domain_uuid' "; - $sql .= "and user_enabled is null "; - $prep_statement = $db->prepare($sql); - $prep_statement->execute(); - $sub_result = $prep_statement->fetch(PDO::FETCH_ASSOC); - unset ($prep_statement); - if ($sub_result['count'] > 0) { - //send output + if ($sub_result['count'] > 0) { if ($display_type == "text") { - echo " Users: set enabled=true\n"; + echo " Group Permissions: no change\n"; } - //set the user_enabled to true - $sql = "update v_users set "; - $sql .= "user_enabled = 'true' "; - $db->exec($sql); - unset($sql); - } + } + else { + if ($display_type == "text") { + echo " Group Permissions: added\n"; + } + //no permissions found add the defaults + $db->beginTransaction(); + foreach($apps as $app) { + foreach ($app['permissions'] as $sub_row) { + foreach ($sub_row['groups'] as $group) { + //add the record + $sql = "insert into v_group_permissions "; + $sql .= "("; + $sql .= "group_permission_uuid, "; + $sql .= "domain_uuid, "; + $sql .= "permission_name, "; + $sql .= "group_name "; + $sql .= ")"; + $sql .= "values "; + $sql .= "("; + $sql .= "'".uuid()."', "; + $sql .= "null, "; + $sql .= "'".$sub_row['name']."', "; + $sql .= "'".$group."' "; + $sql .= ")"; + $db->exec($sql); + unset($sql); + } + } + } + $db->commit(); + } + + //find rows that have a null group_uuid and set the correct group_uuid + $sql = "select * from v_group_users "; + $sql .= "where group_uuid is null; "; + $prep_statement = $db->prepare(check_sql($sql)); + if ($prep_statement) { + $prep_statement->execute(); + $result = $prep_statement->fetchAll(PDO::FETCH_NAMED); + foreach($result as $row) { + if (strlen($row['group_name']) > 0) { + //get the group_uuid + $sql = "select group_uuid from v_groups "; + $sql .= "where group_name = '".$row['group_name']."' "; + //$sql .= "and domain_uuid = '".$row['domain_uuid']."' "; + $prep_statement_sub = $db->prepare($sql); + $prep_statement_sub->execute(); + $sub_result = $prep_statement_sub->fetch(PDO::FETCH_ASSOC); + unset ($prep_statement_sub); + $group_uuid = $sub_result['group_uuid']; + //set the group_uuid + $sql = "update v_group_users set "; + $sql .= "group_uuid = '".$group_uuid."' "; + $sql .= "where group_user_uuid = '".$row['group_user_uuid']."'; "; + $db->exec($sql); + unset($sql); + } + } + unset ($prep_statement); + } + + //if there are no permissions listed in v_group_permissions then set the default permissions + $sql = "select count(*) as count from v_users "; + $sql .= "where domain_uuid = '$domain_uuid' "; + $sql .= "and user_enabled is null "; + $prep_statement = $db->prepare($sql); + $prep_statement->execute(); + $sub_result = $prep_statement->fetch(PDO::FETCH_ASSOC); + unset ($prep_statement); + if ($sub_result['count'] > 0) { + //send output + if ($display_type == "text") { + echo " Users: set enabled=true\n"; + } + //set the user_enabled to true + $sql = "update v_users set "; + $sql .= "user_enabled = 'true' "; + $db->exec($sql); + unset($sql); + } +} ?> \ No newline at end of file