X-Git-Url: https://git.defcon.no/?a=blobdiff_plain;f=api%2Flib%2Fauth_base.php;h=0bf65f75eea7900dbc4dc0c5209f9e50545e4c85;hb=87cde98c94c33708506b8e94db43726393df5dfa;hp=97e557f9d4e63e0878f0dd50b93549ef718296f1;hpb=6496a650839b71ea7bfaab1b3b461886de4475a8;p=hermes diff --git a/api/lib/auth_base.php b/api/lib/auth_base.php index 97e557f..0bf65f7 100644 --- a/api/lib/auth_base.php +++ b/api/lib/auth_base.php @@ -1,4 +1,30 @@ $username, + 'name' => $user_data['name'], + 'email' => $user_data['email'], + 'level' => authlevel_name( $row['access_level'] ) + )); + } + return $list; + +} + + + +function update_authorization( $type, $authid, $level ) { global $config; if ( !is_numeric($level) ) return false; - $query = sprintf("INSERT INTO %s ( authid, access_level ) VALUES ( '%s', %d ) + if ( ($type != "key") && ($type != "user") ) return false; + + $query = sprintf("INSERT INTO %s ( authid, type, access_level ) VALUES ( '%s', '%s', %d ) ON DUPLICATE KEY UPDATE access_level=%d", $config['authorizations_table'], sql_clean($authid), + $type, $level, $level); - if ( ! sql_dbexec( $config['provision_db'], $query ) ) return false; + if ( ! sql_dbexec( $config['hermes_db'], $query ) ) return false; return true; } @@ -338,7 +400,7 @@ function remove_authorization( $authid ) $config['authorizations_table'], sql_clean($authid) ); //print $query . "\n\n"; - if ( ! sql_dbexec( $config['provision_db'], $query ) ) return false; + if ( ! sql_dbexec( $config['hermes_db'], $query ) ) return false; return true; } @@ -348,7 +410,7 @@ function get_authorization( $type, $authid ) global $config; // If API-key is used, but key fails verification, write is impossible. - if ( ( $type == "key" ) && ( ! verify_apikey( $authid ) ) ) + if ( ( $type == "key" ) && ( ! verify_apikey( $authid, true ) ) ) return false; // If User-login is used, but backend is unable to provide info, fail. @@ -362,7 +424,7 @@ function get_authorization( $type, $authid ) $query = sprintf("SELECT access_level FROM %s WHERE authid = '%s'", $config['authorizations_table'], sql_clean($authid) ); - $row = sql_dbquery_single( $config['provision_db'], $query ); + $row = sql_dbquery_single( $config['hermes_db'], $query ); if (!$row) return false; $level = $row['access_level']; return $level; @@ -373,7 +435,7 @@ function can_write ( ) // Stub, to be called on any API nodes that write data in the DB. $authid = $_SESSION['authid']; $type = $_SESSION['type']; - + $level = get_authorization( $type, $authid ); if ( $level >= authlevel_value('read_write') ) return $level; else return false;