Run the users app defaults only once.

This commit is contained in:
Mark Crane
2014-12-26 15:47:37 +00:00
parent b9bb32f4bd
commit d573aa8b0b

View File

@@ -24,152 +24,154 @@
Mark J Crane <markjcrane@fusionpbx.com>
*/
//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);
}
}
?>