def get_irods_password(session_=None, file_path_if_not_found=(), **kwargs): path_memo = [] try: irods_auth_file = kwargs['irods_authentication_file'] except KeyError: irods_auth_file = iRODSSession.get_irods_password_file() try: uid = kwargs['irods_authentication_uid'] except KeyError: uid = None _retval = '' try: with open(irods_auth_file, 'r') as f: _retval = decode(f.read().rstrip('\n'), uid) return _retval except IOError as exc: if exc.errno != errno.ENOENT: raise # Auth file exists but can't be read path_memo = [irods_auth_file] return '' # No auth file (as with anonymous user) finally: if isinstance(file_path_if_not_found, list) and path_memo: file_path_if_not_found[:] = path_memo if session_ is not None and _retval: session_._auth_file = irods_auth_file
def get_irods_auth(env): try: irods_auth_file = env['irods_authentication_file'] except KeyError: irods_auth_file = os.path.expanduser('~/.irods/.irodsA') with open(irods_auth_file, 'r') as f: return decode(f.read().rstrip('\n'))
def get_irods_auth(env): try: irods_auth_file = env['irods_authentication_file'] except KeyError: irods_auth_file = os.path.expanduser('~/.irods/.irodsA') with open(irods_auth_file, 'r') as f: return decode(f.read().rstrip('\n'))
def get_irods_password(**kwargs): try: irods_auth_file = kwargs['irods_authentication_file'] except KeyError: irods_auth_file = iRODSSession.get_irods_password_file() try: uid = kwargs['irods_authentication_uid'] except KeyError: uid = None with open(irods_auth_file, 'r') as f: return decode(f.read().rstrip('\n'), uid)
def get_irods_password(**kwargs): try: irods_auth_file = kwargs['irods_authentication_file'] except KeyError: irods_auth_file = iRODSSession.get_irods_password_file() try: uid = kwargs['irods_authentication_uid'] except KeyError: uid = None with open(irods_auth_file, 'r') as f: return decode(f.read().rstrip('\n'), uid)
def modify_password(self, old_value, new_value, modify_irods_authentication_file = False): """ Change the password for the current user (in the manner of `ipasswd'). Parameters: old_value - the currently valid (old) password new_value - the desired (new) password modify_irods_authentication_file - Can be False, True, or a string. If a string, it should indicate the absolute path of an IRODS_AUTHENTICATION_FILE to be altered. """ with self.sess.pool.get_connection() as conn: hash_new_value = obf.obfuscate_new_password(new_value, old_value, conn.client_signature) message_body = UserAdminRequest( "userpw", self.sess.username, "password", hash_new_value ) request = iRODSMessage("RODS_API_REQ", msg=message_body, int_info=api_number['USER_ADMIN_AN']) conn.send(request) response = conn.recv() if modify_irods_authentication_file: auth_file = self.sess.auth_file if not auth_file or isinstance(modify_irods_authentication_file, str): auth_file = (modify_irods_authentication_file if self.abspath_exists(modify_irods_authentication_file) else '') if not auth_file: message = "Session not loaded from an environment file." raise UserManager.EnvStoredPasswordNotEdited(message) else: with open(auth_file) as f: stored_pw = obf.decode(f.read()) if stored_pw != old_value: message = "Not changing contents of '{}' - "\ "stored password is non-native or false match to old password".format(auth_file) raise UserManager.EnvStoredPasswordNotEdited(message) with open(auth_file,'w') as f: f.write(obf.encode(new_value)) logger.debug(response.int_info)
def decode(cls, s): return password_obfuscation.decode(s, _getuid())