summaryrefslogtreecommitdiffstats
path: root/Bugzilla
diff options
context:
space:
mode:
Diffstat (limited to 'Bugzilla')
-rw-r--r--Bugzilla/DB/Schema.pm1
-rw-r--r--Bugzilla/Install/DB.pm3
-rw-r--r--Bugzilla/User/APIKey.pm7
3 files changed, 9 insertions, 2 deletions
diff --git a/Bugzilla/DB/Schema.pm b/Bugzilla/DB/Schema.pm
index 67d7891b3..975fa7067 100644
--- a/Bugzilla/DB/Schema.pm
+++ b/Bugzilla/DB/Schema.pm
@@ -1764,6 +1764,7 @@ use constant ABSTRACT_SCHEMA => {
revoked => {TYPE => 'BOOLEAN', NOTNULL => 1,
DEFAULT => 'FALSE'},
last_used => {TYPE => 'DATETIME'},
+ last_used_ip => {TYPE => 'varchar(40)'},
app_id => {TYPE => 'varchar(64)'},
],
INDEXES => [
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index e288cb4c3..02777d7f1 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -736,6 +736,9 @@ sub update_table_definitions {
$dbh->bz_alter_column('logincookies', 'cookie',
{TYPE => 'varchar(22)', NOTNULL => 1, PRIMARYKEY => 1});
+ $dbh->bz_add_column('user_api_keys', 'last_used_ip',
+ {TYPE => 'varchar(40)'});
+
################################################################
# New --TABLE-- changes should go *** A B O V E *** this point #
################################################################
diff --git a/Bugzilla/User/APIKey.pm b/Bugzilla/User/APIKey.pm
index c37cccb92..d89203e68 100644
--- a/Bugzilla/User/APIKey.pm
+++ b/Bugzilla/User/APIKey.pm
@@ -13,7 +13,7 @@ use strict;
use parent qw(Bugzilla::Object);
use Bugzilla::User;
-use Bugzilla::Util qw(generate_random_password trim);
+use Bugzilla::Util qw(generate_random_password trim remote_ip);
use Bugzilla::Error;
#####################################################################
@@ -29,9 +29,10 @@ use constant DB_COLUMNS => qw(
description
revoked
last_used
+ last_used_ip
);
-use constant UPDATE_COLUMNS => qw(description revoked last_used);
+use constant UPDATE_COLUMNS => qw(description revoked last_used last_used_ip);
use constant VALIDATORS => {
api_key => \&_check_api_key,
app_id => \&_check_app_id,
@@ -55,6 +56,7 @@ sub app_id { return $_[0]->{app_id} }
sub description { return $_[0]->{description} }
sub revoked { return $_[0]->{revoked} }
sub last_used { return $_[0]->{last_used} }
+sub last_used_ip { return $_[0]->{last_used_ip} }
# Helpers
sub user {
@@ -68,6 +70,7 @@ sub update_last_used {
my $timestamp = shift
|| Bugzilla->dbh->selectrow_array('SELECT LOCALTIMESTAMP(0)');
$self->set('last_used', $timestamp);
+ $self->set('last_used_ip', remote_ip());
$self->update;
}