API Keys
API keys exported
DROP PROCEDURE Base_APIKeys_Authorisation;
DELIMITER //
CREATE PROCEDURE Base_APIKeys_Authorisation
(
$apikey TEXT
)
SQL SECURITY INVOKER
COMMENT 'EXPORTABLE'
BEGIN
CALL _Base_Users_Authorise_Sessionid_Or_APIKEY( '', $apikey, @email, @USER, @idtype );
IF "" = @idtype THEN
CALL Error( 'Base_APIKeys_Authorisation: INVALID_AUTHORISATION' );
ELSE
SELECT
@email AS email,
@USER AS USER;
END IF;
END
//
DELIMITER ;
API keys internal
DROP PROCEDURE _Base_APIKeys;
DELIMITER //
CREATE PROCEDURE _Base_APIKeys
(
$Sid TEXT
)
SQL SECURITY INVOKER
BEGIN
CALL _Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );
IF NOT( @USER ) THEN
CALL Notice( 'Base_APIKeys: INVALID_AUTHORISATION' );
ELSE
SELECT *
FROM base_apikeys
WHERE USER_OWNER = @USER
ORDER BY created;
END IF;
END
//
DELIMITER ;
DROP PROCEDURE _Admin_Base_APIKeys_Create;
DELIMITER //
CREATE PROCEDURE _Admin_Base_APIKeys_Create
(
$Sid CHAR(64),
$apikey_type TEXT,
$USER_OWNER INT,
$ORG_ID INT,
$PROJECT_ID INT
)
SQL SECURITY INVOKER
BEGIN
DECLARE $APIKEY_ID INT DEFAULT 0;
DECLARE $apikey CHAR(36) DEFAULT '';
CALL _Base_Users_Authorise_Sessionid( $Sid, @email, @USER, @idtype );
IF @@read_only THEN
CALL Error( 'READ_ONLY' );
ELSEIF NOT "ADMIN" = @idtype THEN
CALL Notice( '_Admin_Base_APIKeys_Create: INVALID_AUTHORISATION' );
ELSE
CALL spgen_base_apikeys_replace
(
$USER_OWNER, # USER_OWNER
$APIKEY_ID, # APIKEY_ID INOUT
NOW(), # created
GenerateSalt(), # apikey
$apikey_type, # apikey_type
'', # ip_address
$ORG_ID, # ORG_ID
$PROJECT_ID # PROJECT_ID
);
END IF;
END
//
DELIMITER ;