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.
The odd thing, now, is if I do a binary comparison of the Javascript file from fresh install files for 7.4.2 with the Javascript file from my original download of 7.4.1. They are the same. It worked before. It didn't work after (until I modified the code). I don't get it. How is that possible?