From 1ff64c71d45d2333ad4cdffa4d0e9b29218132be Mon Sep 17 00:00:00 2001 From: kervala Date: Sun, 8 May 2016 13:28:25 +0200 Subject: [PATCH] Fixed: Some problems with AMS, patches by depyraken (thanks a lot!) --HG-- branch : develop --- code/web/private_php/ams/autoload/users.php | 49 +++++++++---------- .../Domain_Management/Domain_Management.php | 2 +- 2 files changed, 23 insertions(+), 28 deletions(-) diff --git a/code/web/private_php/ams/autoload/users.php b/code/web/private_php/ams/autoload/users.php index 5b3bfaa2d..81bc0599f 100644 --- a/code/web/private_php/ams/autoload/users.php +++ b/code/web/private_php/ams/autoload/users.php @@ -336,36 +336,31 @@ class Users{ public static function createPermissions($pvalues) { try { - $values = array('username' => $pvalues[0]); + // bind to the shard database (guess so :p) $dbs = new DBLayer("shard"); - $sth = $dbs->selectWithParameter("UId", "user", $values, "Login= :username"); - $result = $sth->fetchAll(); - $dbl = new DBLayer("lib"); - - $UId = $result['0']['UId']; - - $statement = $dbl->execute("SELECT * FROM `settings` WHERE `Setting` = :setting", Array('setting' => 'Domain_Auto_Add')); - $json = $statement->fetch(); - $json = json_decode($json['Value'],true); - - $db = new DBLayer( 'shard' ); - // get all domains - $statement = $db -> executeWithoutParams( "SELECT * FROM domain" ); - $rows = $statement -> fetchAll(); + // retrieve the user UId + $values = array('username' => $pvalues[0]); + $statement = $dbs->selectWithParameter("UId", "user", $values, "Login= :username"); + $result = $statement->fetchAll(); + $UId = $result['0']['UId']; + + // retrieve the default access privileges (don't understand what exactly is done) + $dbl = new DBLayer("lib"); + $statement = $dbl->execute("SELECT Value FROM `settings` WHERE `Setting` = :setting", Array('setting' => 'Domain_Auto_Add')); + //$statement = $dbl->execute("SELECT * FROM `settings` WHERE `Setting` = :setting", Array('setting' => 'Domain_Auto_Add')); + $json = $statement->fetch(); + $accessPriv = $json['Value']; + //$accessPriv = json_decode($json['Value'],true); + + // get all shardIds and domain_ids + $statement = $dbs -> executeWithoutParams( "SELECT ShardId, domain_id FROM shard" ); + $shardIds = $statement -> fetchAll(); - //error_log(print_r($rows,true)); - //error_log(print_r($result,true)); - //error_log(print_r($json,true)); - if ($json) foreach ($json as $key => $value) { - //error_log(print_r($key,true)); - //error_log(print_r($value,true)); - - $ins_values = array('UId' => $UId, 'DomainId' => $key, 'AccessPrivilege' => $value['1']); - error_log(print_r($ins_values,true)); - $dbs = new DBLayer("shard"); - $dbs->insert("permission", $ins_values); - } + foreach($shardIds as $shardId) { // add default access privileges to the user for each shard + $ins_values = array('UId' => $UId, 'DomainId' => $shardId['domain_id'], 'ShardId' => $shardId['ShardId'], 'AccessPrivilege' => $accessPriv); + $dbs->insert("permission", $ins_values); + } } catch (PDOException $e) { //oh noooz, the shard is offline! Put it in query queue at ams_lib db! diff --git a/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php index a99ac5551..5362eef6b 100644 --- a/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php +++ b/code/web/private_php/ams/plugins/Domain_Management/Domain_Management.php @@ -156,7 +156,7 @@ function domain_management_hook_return_global() } -function api_key_management_hook_activate() +function domain_management_hook_activate() { $dbl = new DBLayer( "lib" ); $sql = "INSERT INTO `settings` (Setting)