def addUser(username, password, publicKey = None, isAdmin = None, loginRPC = None, loginSSH = None, loginManhole = None, isHtpasswd = None): session = Session() try: thisUser = session.query(User).filter(User.username == username).one() thisUser.saveNewPassword(password) if publicKey: thisUser.addKey(publicKey) if isAdmin != None: thisUser.isAdmin = isAdmin if loginRPC != None: thisUser.loginRPC = loginRPC if loginSSH != None: thisUser.loginSSH = loginSSH if loginManhole != None and thisUser.isAdmin: thisUser.loginManhole = loginManhole if isHtpasswd != None: thisUser.isHtpasswd = isHtpasswd dissomniag.saveCommit(session) return thisUser except (NoResultFound, MultipleResultsFound): if isAdmin == None: isAdmin = False if loginRPC == None: loginRPC = False if loginSSH == None: loginSSH = False if loginManhole == None: loginManhole = False if isHtpasswd == None: isHtpasswd = False return User(username, password, publicKey, isAdmin, loginRPC, loginSSH, loginManhole, isHtpasswd)
def loginRPCMethod(username, passwd = None): if not passwd: return LOGIN_SIGN.SECRET_UNVALID, None session = Session() try: user = session.query(User).filter(User.username == username).one() except (NoResultFound, MultipleResultsFound): return LOGIN_SIGN.NO_SUCH_USER, None if not user.loginRPC: return LOGIN_SIGN.UNVALID_ACCESS_METHOD, None return User._loginViaPasswd(user, passwd)
def loginSSHMethod(username, passwd = None, key = None): if not passwd and not key: return LOGIN_SIGN.SECRET_UNVALID, None session = Session() try: user = session.query(User).filter(User.username == username).one() except (NoResultFound, MultipleResultsFound): return LOGIN_SIGN.NO_SUCH_USER, None if not user.loginSSH: return LOGIN_SIGN.UNVALID_ACCESS_METHOD, None """If Public Key was provided""" if not passwd: return User._loginViaPubKey(user, key) else: return User._loginViaPasswd(user, passwd)
def loginManholeMethod(username, passwd = None, key = None): if not passwd and not key: return LOGIN_SIGN.SECRET_UNVALID, None session = Session() try: user = session.query(User).filter(User.username == username).one() except (NoResultFound, MultipleResultsFound): return LOGIN_SIGN.NO_SUCH_USER, None """Check that only admins have access to the Manhole backend""" if not user.isAdmin and not user.loginManhole: return LOGIN_SIGN.UNVALID_ACCESS_METHOD, None """If Public Key was provided""" if not passwd: return User._loginViaPubKey(user, key) else: return User._loginViaPasswd(user, passwd)