Bug 1306141

Summary: satpasswd do not work for logins including underscore char
Product: Red Hat Satellite 5 Reporter: Jan Hutař <jhutar>
Component: ClientAssignee: Tomáš Kašpárek <tkasparek>
Status: CLOSED DUPLICATE QA Contact: Red Hat Satellite QA List <satqe-list>
Severity: low Docs Contact:
Priority: unspecified    
Version: 570CC: tlestach
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-10 08:03:29 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jan Hutař 2016-02-10 07:11:08 UTC
Description of problem:
satpasswd do not work for logins including underscore char and most probably any other non-alphanumeric chars, but i do not know which ones are allowed in username (underscore is, tested on webUI)


Version-Release number of selected component (if applicable):
spacewalk-backend-tools-2.3.3-33.el6sat.noarch


How reproducible:
always


Steps to Reproduce:
1. Have user "jhutar_something"
2. Try to use `satpasswd` to change its password


Actual results:
# echo -e 'newpass\nnewpass' | satpasswd --stdin jhutar_something
Usage: satpasswd [OPTIONS] user

Options:
	-h, --help	Print this help message.
	-s, --stdin	Read the password from standard input.


Expected results:
Should work.


Additional info:
This is problematic "if" in the code:

    userIn = sys.argv.pop()
    if not userIn.isalnum():
        print_help()
        sys.exit(1)

Comment 1 Jan Hutař 2016-02-10 07:49:04 UTC
Maybe?:

    import re
    userIn = sys.argv.pop()
    if not re.match(r'^[A-Za-z0-9_]+$', userIn):
        print_help()
        sys.exit(1)