Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 1361134

Summary: When fine-grained policy is applied, a sub-tree has a priority over a user while changing password
Product: Red Hat Enterprise Linux 7 Reporter: Simon Pichugin <spichugi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.3CC: nkinder, rmeggins
Target Milestone: rcKeywords: Regression
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.5.10-6.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 20:44:39 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:

Description Simon Pichugin 2016-07-28 11:52:15 UTC
Description of problem:
If we setup fine-grained policy for a subtree and for a user under it and set passwordChange attribute to 'on' for the user and 'off' for the subtree, we wouldn't be able to change password while binding as user.
But, by the feature logic (thanks to Noriko for the info), fine-grained pwdpolicy on the entry has a priority over fine-grained pwdpolicy on the subtree the entry belongs to.

Version-Release number of selected component:
389-ds-base-1.3.5.10-5.el7.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Install Directory Server instance
2. Add a user to 'ou=people,dc=example,dc=com'
3. Set up password policy for the user and the subtree
4. Set passwordChange on the user pwdPolicy entry to 'on'
5. Set passwordChange on the subtree pwdPolicy entry to 'off'
5. Try to change userPassword binding as the user

Actual results:
UNWILLING_TO_PERFORM: {'info': 'user is not allowed to change password', 'desc': 'Server is unwilling to perform'}

Expected results:
User should be able to change a password

Additional info:
Looks like a regression, because TET CI test runs show no issue on the 389-ds-base-1.3.4.0 build

Comment 2 Simon Pichugin 2016-07-28 13:35:24 UTC
Upstream ticket: https://fedorahosted.org/389/ticket/48943

Comment 5 Simon Pichugin 2016-08-22 08:11:30 UTC
Build tested:
389-ds-base-1.3.5.10-8.el7.x86_64

[root@stal ds]# py.test -v dirsrvtests/tests/suites/password/pwd_change_policytest.py
========================= test session starts =========================
platform linux2 -- Python 2.7.5, pytest-3.0.0, py-1.4.31, pluggy-0.3.1 -- /usr/bin/python
cachedir: .cache
DS build: 1.3.5.10 B2016.231.199
389-ds-base: 1.3.5.10-8.el7
nss: 3.21.0-17.el7
nspr: 4.11.0-1.el7_2
openldap: 2.4.40-12.el7
svrcore: 4.1.2-1.el7

rootdir: /mnt/tests/rhds/tests/upstream/ds, inifile:
plugins: beakerlib-0.5, html-1.10.0, cov-2.3.1
collected 4 items

dirsrvtests/tests/suites/password/pwd_change_policytest.py::test_change_pwd[off-on-None] PASSED
dirsrvtests/tests/suites/password/pwd_change_policytest.py::test_change_pwd[on-on-None] PASSED
dirsrvtests/tests/suites/password/pwd_change_policytest.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM] PASSED
dirsrvtests/tests/suites/password/pwd_change_policytest.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM] PASSED

====================== 4 passed in 25.15 seconds ======================

Marking as verified.

Comment 7 errata-xmlrpc 2016-11-03 20:44:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2594.html