Add PAM configuration code
authorSimo Sorce <simo@redhat.com>
Thu, 20 Mar 2014 20:46:18 +0000 (16:46 -0400)
committerSimo Sorce <simo@redhat.com>
Thu, 20 Mar 2014 21:28:30 +0000 (17:28 -0400)
Signed-off-by: Simo Sorce <simo@redhat.com>
ipsilon/login/authpam.py

index 1eb697b..db409f7 100755 (executable)
@@ -18,6 +18,8 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from ipsilon.login.common import LoginPageBase, LoginManagerBase
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 from ipsilon.login.common import LoginPageBase, LoginManagerBase
+from ipsilon.login.common import FACILITY
+from ipsilon.util.plugin import PluginObject
 import cherrypy
 import pam
 
 import cherrypy
 import pam
 
@@ -161,6 +163,25 @@ class Installer(object):
         if opts['pam'] != 'yes':
             return
 
         if opts['pam'] != 'yes':
             return
 
-        if opts['pam_service'] != 'remote':
-            #TODO: add service_name in the database
-            return
+        # Add configuration data to database
+        po = PluginObject()
+        po.name = 'pam'
+        po.wipe_data()
+
+        po.wipe_config_values(FACILITY)
+        config = {'service name': opts['pam_service']}
+        po.set_config(config)
+        po.save_plugin_config(FACILITY)
+
+        # Update global config to add login plugin
+        po = PluginObject()
+        po.name = 'global'
+        globalconf = po.get_plugin_config(FACILITY)
+        if 'order' in globalconf:
+            order = globalconf['order'].split(',')
+        else:
+            order = []
+        order.append('pam')
+        globalconf['order'] = ','.join(order)
+        po.set_config(globalconf)
+        po.save_plugin_config(FACILITY)