Implement change registration
[cascardo/ipsilon.git] / ipsilon / login / authtest.py
index 39e0f39..aa2a73a 100644 (file)
@@ -1,24 +1,11 @@
-# Copyright (C) 2014  Simo Sorce <simo@redhat.com>
-#
-# see file 'COPYING' for use and warranty information
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from ipsilon.login.common import LoginFormBase, LoginManagerBase
+# Copyright (C) 2014 Ipsilon project Contributors, for license see COPYING
+
+from ipsilon.login.common import LoginFormBase, LoginManagerBase, \
+    LoginManagerInstaller
 from ipsilon.util.plugin import PluginObject
 from ipsilon.util import config as pconfig
 import cherrypy
+import logging
 
 
 class TestAuth(LoginFormBase):
@@ -31,7 +18,13 @@ class TestAuth(LoginFormBase):
         if username and password:
             if password == 'ipsilon':
                 cherrypy.log("User %s successfully authenticated." % username)
-                testdata = {'fullname': 'Test User %s' % username}
+                testdata = {
+                    'givenname': 'Test User',
+                    'surname': username,
+                    'fullname': 'Test User %s' % username,
+                    'email': '%s@example.com' % username,
+                    '_groups': [username]
+                }
                 return self.lm.auth_successful(self.trans,
                                                username, 'password', testdata)
             else:
@@ -39,7 +32,7 @@ class TestAuth(LoginFormBase):
                 error = "Authentication failed"
         else:
             error = "Username or password is missing"
-            cherrypy.log.error("Error: " + error)
+            cherrypy.log.error("Error: " + error, severity=logging.ERROR)
 
         context = self.create_tmpl_context(
             username=username,
@@ -47,7 +40,7 @@ class TestAuth(LoginFormBase):
             error_password=not password,
             error_username=not username
         )
-        # pylint: disable=star-args
+        self.lm.set_auth_error()
         return self._template('login/form.html', **context)
 
 
@@ -97,22 +90,22 @@ Form based TEST login Manager, DO NOT EVER ACTIVATE IN PRODUCTION """
         return self.page
 
 
-class Installer(object):
+class Installer(LoginManagerInstaller):
 
     def __init__(self, *pargs):
+        super(Installer, self).__init__()
         self.name = 'testauth'
-        self.ptype = 'login'
         self.pargs = pargs
 
     def install_args(self, group):
         group.add_argument('--testauth', choices=['yes', 'no'], default='no',
                            help='Configure PAM authentication')
 
-    def configure(self, opts):
+    def configure(self, opts, changes):
         if opts['testauth'] != 'yes':
             return
 
-        print self.pargs
+        logging.debug(self.pargs)
         # Add configuration data to database
         po = PluginObject(*self.pargs)
         po.name = 'testauth'