source: n4d/trunk/fuentes/install-files/usr/share/n4d/xmlrpc-server/ClassPam.py @ 105

Last change on this file since 105 was 103, checked in by hectorgh, 5 years ago

adding files

File size: 915 bytes
Line 
1# -*- coding: utf-8 -*-
2import PAM
3class PamValidate:
4        def __init__(self,module="login"):
5                self.user = None
6                self.passwd = None
7                self.auth = PAM.pam()
8                self.auth.start(module)
9       
10        def authentication(self,user,passwd):
11               
12                def pam_conv(auth, query_list, userData):
13                        resp = []
14                        for i in range(len(query_list)):
15                                query, type = query_list[i]
16                                if type == PAM.PAM_PROMPT_ECHO_ON :
17                                        resp.append((user),0)
18                                if type == PAM.PAM_PROMPT_ECHO_OFF:
19                                        resp.append((passwd, 0))
20                                elif type == PAM.PAM_ERROR_MSG or type == PAM.PAM_TEXT_INFO:
21                                        print query
22                                        resp.append(('', 0))
23                                else:
24                                        return None
25                        return resp
26                self.auth.set_item(PAM.PAM_USER, user)
27                self.auth.set_item(PAM.PAM_CONV,pam_conv)
28                try:
29                        self.auth.authenticate()
30                        self.auth.acct_mgmt()
31                        return True
32                except Exception as e:
33                        f = open('/var/log/n4d/pam','a')
34                        f.write(e.message + "\n")
35                        f.close()
36                        return False
Note: See TracBrowser for help on using the repository browser.