From 70540fb131c58cf4fb012854759eef2d73528a30 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Thu, 7 Aug 2008 04:38:22 +0000 Subject: Bug 438435: Need code hooks for authentication Patch By Max Kanat-Alexander r=LpSolit, a=mkanat --- extensions/example/code/auth-login_methods.pl | 27 +++++++++++++++++++++ extensions/example/code/auth-verify_methods.pl | 27 +++++++++++++++++++++ extensions/example/code/config-add_panels.pl | 25 +++++++++++++++++++ extensions/example/code/config-modify_panels.pl | 32 +++++++++++++++++++++++++ extensions/example/lib/AuthLogin.pm | 32 +++++++++++++++++++++++++ extensions/example/lib/AuthVerify.pm | 31 ++++++++++++++++++++++++ 6 files changed, 174 insertions(+) create mode 100644 extensions/example/code/auth-login_methods.pl create mode 100644 extensions/example/code/auth-verify_methods.pl create mode 100644 extensions/example/code/config-add_panels.pl create mode 100644 extensions/example/code/config-modify_panels.pl create mode 100644 extensions/example/lib/AuthLogin.pm create mode 100644 extensions/example/lib/AuthVerify.pm (limited to 'extensions') diff --git a/extensions/example/code/auth-login_methods.pl b/extensions/example/code/auth-login_methods.pl new file mode 100644 index 000000000..0ae12aa6b --- /dev/null +++ b/extensions/example/code/auth-login_methods.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{modules}; +if (exists $modules->{Example}) { + $modules->{Example} = 'extensions/example/lib/AuthLogin.pm'; +} diff --git a/extensions/example/code/auth-verify_methods.pl b/extensions/example/code/auth-verify_methods.pl new file mode 100644 index 000000000..7ae52f012 --- /dev/null +++ b/extensions/example/code/auth-verify_methods.pl @@ -0,0 +1,27 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{modules}; +if (exists $modules->{Example}) { + $modules->{Example} = 'extensions/example/lib/AuthVerify.pm'; +} diff --git a/extensions/example/code/config-add_panels.pl b/extensions/example/code/config-add_panels.pl new file mode 100644 index 000000000..5f4f5bdd4 --- /dev/null +++ b/extensions/example/code/config-add_panels.pl @@ -0,0 +1,25 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Bradley Baetz + +use strict; +use warnings; +use Bugzilla; +my $modules = Bugzilla->hook_args->{panel_modules}; +$modules->{Example} = "extensions::example::lib::ConfigExample"; diff --git a/extensions/example/code/config-modify_panels.pl b/extensions/example/code/config-modify_panels.pl new file mode 100644 index 000000000..bd93962bf --- /dev/null +++ b/extensions/example/code/config-modify_panels.pl @@ -0,0 +1,32 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical Ltd. are Copyright (C) 2008 +# Canonical Ltd. All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander + +use strict; +use warnings; +use Bugzilla; +my $panels = Bugzilla->hook_args->{panels}; + +# Add the "Example" auth methods. +my $auth_params = $panels->{'auth'}->{params}; +my ($info_class) = grep($_->{name} eq 'user_info_class', @$auth_params); +my ($verify_class) = grep($_->{name} eq 'user_verify_class', @$auth_params); + +push(@{ $info_class->{choices} }, 'CGI,Example'); +push(@{ $verify_class->{choices} }, 'Example'); diff --git a/extensions/example/lib/AuthLogin.pm b/extensions/example/lib/AuthLogin.pm new file mode 100644 index 000000000..def3fa228 --- /dev/null +++ b/extensions/example/lib/AuthLogin.pm @@ -0,0 +1,32 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd. +# All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander + +package extensions::example::lib::AuthLogin; +use strict; +use base qw(Bugzilla::Auth::Login); +use constant user_can_create_account => 0; +use Bugzilla::Constants; + +# Always returns no data. +sub get_login_info { + return { failure => AUTH_NODATA }; +} + +1; diff --git a/extensions/example/lib/AuthVerify.pm b/extensions/example/lib/AuthVerify.pm new file mode 100644 index 000000000..b89bbb213 --- /dev/null +++ b/extensions/example/lib/AuthVerify.pm @@ -0,0 +1,31 @@ +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Bugzilla Example Plugin. +# +# The Initial Developer of the Original Code is Canonical Ltd. +# Portions created by Canonical are Copyright (C) 2008 Canonical Ltd. +# All Rights Reserved. +# +# Contributor(s): Max Kanat-Alexander + +package extensions::example::lib::AuthVerify; +use strict; +use base qw(Bugzilla::Auth::Verify); +use Bugzilla::Constants; + +# A verifier that always fails. +sub check_credentials { + return { failure => AUTH_NO_SUCH_USER }; +} + +1; -- cgit v1.2.3-24-g4f1b