use Bugzilla::Token;
use List::Util qw(first);
+use List::MoreUtils qw(any);
sub new {
my ($class) = @_;
-value => $login_cookie,
%cookieargs);
+ my $securemail_groups = Bugzilla->can('securemail_groups') ? Bugzilla->securemail_groups : [ 'admin' ];
+
+ if (any { $user->in_group($_) } 'mozilla-employee-confidential', @$securemail_groups) {
+ my $auth_method = eval { ref($user->authorizer->successful_info_getter) } // 'unknown';
+
+ Bugzilla->audit(sprintf "successful login of %s from %s using \"%s\", authenticated by %s",
+ $user->login, $ip_addr, $cgi->user_agent // '', $auth_method);
+ }
+
return $login_cookie;
}
##############################################################################
# Creating new columns
#
-# secure_mail boolean in the 'groups' table - whether to send secure mail
+# secure_mail boolean in the 'gselect id from groups where secure_mailroups' table - whether to send secure mail
# public_key text in the 'profiles' table - stores public key
##############################################################################
sub install_update_db {
BEGIN {
*Bugzilla::Group::secure_mail = \&_group_secure_mail;
*Bugzilla::User::public_key = \&_user_public_key;
+ *Bugzilla::securemail_groups = \&_securemail_groups;
}
sub _group_secure_mail { return $_[0]->{'secure_mail'}; }
+sub _securemail_groups {
+ return Bugzilla->dbh->selectcol_arrayref("SELECT name FROM groups WHERE secure_mail = 1") // [];
+}
+
# We want to lazy-load the public_key.
sub _user_public_key {
my $self = shift;