我有一个多站点网络,超级管理员将在其中创建各个站点。出于合规性原因,我们需要启用的一个重要角色是限制“作者”不能上载媒体,但可以访问媒体库,从超级管理员上载的媒体中进行选择。我已经下载了用户角色编辑器插件,这是一个很棒的插件,但它提供的唯一选项是关闭“upload\\u files”功能。这将剥夺访问媒体库的所有能力。没有bueno。
有人想试试这个吗??
我有一个多站点网络,超级管理员将在其中创建各个站点。出于合规性原因,我们需要启用的一个重要角色是限制“作者”不能上载媒体,但可以访问媒体库,从超级管理员上载的媒体中进行选择。我已经下载了用户角色编辑器插件,这是一个很棒的插件,但它提供的唯一选项是关闭“upload\\u files”功能。这将剥夺访问媒体库的所有能力。没有bueno。
有人想试试这个吗??
只是粗略地尝试一下。。。
add_filter(\'media_upload_tabs\', \'modify_media_tabs\');
function modify_media_tabs($tabs) {
if (is_super_admin()) return $tabs;
return array(
\'type_url\' => __(\'From URL\'),
\'gallery\' => __(\'Gallery\'),
\'library\' => __(\'Media Library\')
);
}
add_filter(\'_upload_iframe_src\', \'change_default_media_tab\');
function change_default_media_tab($uri) {
if (is_super_admin()) return $uri;
return $uri.\'&tab=library\';
}
add_action(\'current_screen\', \'check_uploading_permissions\');
function check_uploading_permissions() {
if (is_super_admin()) return;
if (get_current_screen()->id == \'media-upload\' || (get_current_screen()->action == \'add\' && get_current_screen()->id == \'media\')) {
$post_id = (int) $_GET[\'post_id\'];
if (!$post_id || isset($_GET[\'inline\']))
wp_die(__(\'You do not have permission to upload files.\'));
if ( !isset($_GET[\'tab\']) || !($_GET[\'tab\'] == \'library\' || $_GET[\'tab\'] == \'type_url\' || $_GET[\'tab\'] == \'gallery\')) {
wp_redirect( admin_url(\'media-upload.php?tab=library&post_id=\'.$post_id) );
exit;
}
}
}
我们正在做三件事:从编辑器的弹出式上载程序中删除“我的电脑”选项卡,我们在编辑器的弹出式上载程序中设置默认选项卡“库”,我们拒绝直接访问媒体上载页的权限,我这样做是为了任何不是超级管理员的人,但当然,您可以添加一个用于其他功能的条款。我并没有试着发布一张图片来查看它是否可以绕过,所以如果合规性是你的游戏,你应该这样做。事实上,虽然这可能不言而喻,但我还是要说:
本程序的发布旨在使其有用,但无任何保证;甚至没有针对特定用途的可迁移性或适用性的默示保证。请参见GNU General Public License 了解更多详细信息。
希望这有帮助!
干杯~