I'm wondering about some behavior of the .tristate checkboxes in the Permissions Grid.
I was on DNN 7.4.1. I installed Oliver Hine's Enhanced Permissions provider. I tried it out; it didn't handle quite everything I wanted; so I uninstalled it. It should have been uninstalled correctly, through the Host > Extensions > Providers section. The checkbox issue showed up. I tried upgrading the site manually from 7.4.1 to 7.4.2 to see if that would overwrite any files that may have acquired issues. No go.
Here's the thing:
Before all that, the checkboxes worked, as in I click View, View gets checked, I deny View, View and Edit are denied, etc; check Edit, View and Edit get checked, uncheck Edit, both are unchecked, etc. So, I was able to set permissions "properly", notably just the View permission.
Afterwards, clicking either checkbox duplicates the action across both checkboxes in the row. So I could not select just View alone -- it would always auto-select Edit as well.
I asked Oliver about this. He says I uninstalled the provider correctly. He also says the Enhanced Permissions don't touch /js/dnn.permissiontristate.js which handles this auto-checking of the boxes.
I've modified /js/dnn.permissiontristate.js to work correctly again (which also means that file is the sole actor). It looks like it was not working because of a flaw in the logic for the section starting @ line 85:
var $fullControl = $hdn.parent ...
Specifically line 92, because with only Edit and View, View comparing against View will always be equal, so setFullControl will always be true.