Last active
February 10, 2017 23:19
-
-
Save webketje/219205fed6283548e8c0c0cbbcad5171 to your computer and use it in GitHub Desktop.
GS UsrMgr - plugin permissions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
if (myself(false) === 'load.php' && @$_GET['id'] === 'i18n_base') { | |
add_action('page-access', 'i18n_base_pages_access'); | |
} | |
add_filter('permissions-css', 'i18n_base_permissions_css'); | |
function i18n_base_pages_access() { | |
$usermgr = usermgr(); | |
$current_user = current_user(); | |
if ($current_user->cannot('access_pages')) { | |
$usermgr->restrict_access(); | |
} | |
} | |
function i18n_base_permissions_css($style) { | |
$usermgr = usermgr(); | |
$current_user = current_user(); | |
return pages_page_access($current_user, $style) . ($current_user->cannot('access_pages') ? '#nav_pages { display: none; }' : ''); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta charset="utf-8"> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script> | |
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script> | |
<style> | |
body { font: 16px normal Arial, Helvetica, sans-serif; line-height: 1em; } | |
#plugin-perms { max-width: 600px; overflow: auto; } | |
#plugin-perms label { display: block; float: left; width: 199px; } | |
#plugin-perms input { float: right; } | |
button#dl { border: 1px solid #aaa; padding: 3px 5px; background-color: #ccc; font-weight: bold; } | |
</style> | |
</head> | |
<body> | |
<h1>GS UserMgr - Plugin permissions collection</h1> | |
<hr> | |
<div id="plugin-perms"></div> | |
<hr> | |
<button type="button" id="dl">Download ZIP</button> | |
<script> | |
var perms = [ | |
{ name: 'i18n_base.php', label: 'I18n base', url: 'https://gist.githubusercontent.com/webketje/219205fed6283548e8c0c0cbbcad5171/raw/i18n_base.php' } | |
]; | |
perms.root = document.getElementById('plugin-perms'); | |
perms.get = function(name) { | |
return perms.filter(function(p) { | |
return p.name === name; | |
})[0]; | |
}; | |
perms.load = function(e) { | |
var perm = perms.get(e.target.value), | |
req = new XMLHttpRequest(); | |
req.onload = function() { perm.contents = this.responseText; }; | |
req.open("GET", perm.url); | |
req.send(); | |
}; | |
perms.render = function() { | |
for (var i = 0, l = perms.length; i < l; i++) { | |
chk = document.createElement('input'); | |
chk.type = 'checkbox'; | |
chk.value = perms[i].name; | |
chk.className = 'perm'; | |
chk.id = 'chk-' + perms[i].name.slice(0, -3); | |
lbl = document.createElement('label'); | |
lbl.setAttribute('for', 'chk-' + perms[i].name.slice(0, -3)); | |
lbl.appendChild(document.createTextNode(perms[i].label)); | |
lbl.appendChild(chk); | |
perms.root.appendChild(lbl); | |
} | |
}; | |
perms.download = function() { | |
var elems = perms.root.getElementsByClassName('perm'), | |
zip = new JSZip(), perm, | |
folder = zip.folder('usermgr').folder('permissions'); | |
for (var i = 0, l = elems.length; i < l; i++) { | |
if (elems[i].checked) { | |
perm = perms.get(elems[i].value); | |
if (perm.contents) | |
folder.file(perm.name, perm.contents); | |
} | |
} | |
zip.generateAsync({type:"blob"}).then(function (blob) { | |
saveAs(blob, "usermgr_plugin_permissions.zip"); | |
}); | |
}; | |
perms.render(); | |
document.getElementById('dl').addEventListener('click', perms.download, false); | |
perms.root.addEventListener('change', perms.load, false); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment