- @staticmethod
- def authMifareCard(cardId):
- return OpenDispense(get_uid(cardId), get_uname(get_uid(cardId)), True)
+ if info.pw_dir == None: return False
+ pinfile = os.path.join(info.pw_dir, '.pin')
+ try:
+ s = os.stat(pinfile)
+ except OSError:
+ logging.info('getting pin for uid %d: .pin not found in home directory'%userId)
+ return False
+ if s.st_mode & 077:
+ logging.info('getting pin for uid %d: .pin has wrong permissions. Fixing.'%userId)
+ os.chmod(pinfile, 0600)
+ try:
+ f = file(pinfile)
+ except IOError:
+ logging.info('getting pin for uid %d: I cannot read pin file'%userId)
+ return False
+ pinstr = f.readline().strip()
+ f.close()
+ if not re.search('^[0-9]{4}$', pinstr):
+ logging.info('getting pin for uid %d: %s not a good pin'%(userId,repr(pinstr)))
+ return False
+
+ if pinstr == str(pin):
+ #Login Successful
+ self._userid = userId
+ self._loggedIn = True
+ self._disabled = False
+ self._username = info.pw_name
+ return True
+
+ # Login Unsuccessful
+ return False
+
+ def authMifareCard(self, cardId):
+ # Get the users ID
+ self._userid = get_uid(cardId)
+
+ # Check for thier username
+ try:
+ # Get info from
+ info = pwd.getpwuid(userId)
+ except KeyError:
+ logging.info('getting pin for uid %d: user not in password file'%uid)
+ return False
+
+ # If we get this far all is good
+ self._loggedIn = True
+ self._disabled = False
+ self._username = info.pw_name
+ return True