sys_user_grmember Business Rules "Group Member Add - Skills" and "Group Member Delete - Skills" refer to a non-exiting field, "granted_by", in the [sys_user_has_skill] table.
As a result, a user removal from any group removes all skills from that user, even if those skills were not granted to the group for which membership is revoked.
Steps to Reproduce
Failure of "Group Member Delete - Skills"
- Activate "Skills Management" plugin with demo data.
- Check that beth.anglin is member of Service Desk and Hardware groups.
- Grant Skill "Backoffice" to Service Desk group. The user beth.anglin will get the skill.
- Grant Skill "Apple Computer" to Hardware group. The user beth.anglin will get the skill.
- Remove beth.anglin from Hardware group.
Observe the user loses all skills even granted by group "Service Desk" where he still has membership, instead of losing the skill "Apple Computer" only.
Failure of "Group Member Add - Skills"
- Repeat steps 1-5 from above. The starting point is that beth.anglin does NOT have any skills + no membership in "Hardware".
- Add beth.anglin to "Hardware".
Observe the sys_user_has_skill record appears, but with "Inherited from" empty, instead of being populated as "Hardware".
The problem has been fixed in the latest patches listed in the Fixed In field below. It does not occur in any currently supported version.
Related Problem: PRB647489