Provide admin delete ability if the viewer is admin but has no existing delete authority. For 3.5+ as a new string is involved.
This commit is contained in:
parent
285781b887
commit
406ea67bbc
@ -141,6 +141,10 @@ class ThreadItem {
|
|||||||
'delete' => t('Delete'),
|
'delete' => t('Delete'),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
elseif(is_site_admin()) {
|
||||||
|
$drop = [ 'dropping' => true, 'delete' => t('Admin Delete') ];
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME
|
// FIXME
|
||||||
if($observer_is_pageowner) {
|
if($observer_is_pageowner) {
|
||||||
$multidrop = array(
|
$multidrop = array(
|
||||||
|
@ -1084,7 +1084,7 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
if((argc() == 3) && (argv(1) === 'drop') && intval(argv(2))) {
|
if((argc() == 3) && (argv(1) === 'drop') && intval(argv(2))) {
|
||||||
|
|
||||||
require_once('include/items.php');
|
require_once('include/items.php');
|
||||||
$i = q("select id, uid, author_xchan, owner_xchan, source_xchan, item_type from item where id = %d limit 1",
|
$i = q("select id, uid, item_origin, author_xchan, owner_xchan, source_xchan, item_type from item where id = %d limit 1",
|
||||||
intval(argv(2))
|
intval(argv(2))
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1094,13 +1094,20 @@ class Item extends \Zotlabs\Web\Controller {
|
|||||||
if(local_channel() && local_channel() == $i[0]['uid'])
|
if(local_channel() && local_channel() == $i[0]['uid'])
|
||||||
$local_delete = true;
|
$local_delete = true;
|
||||||
|
|
||||||
$sys = get_sys_channel();
|
// The site admin can delete any post/item on the site.
|
||||||
if(is_site_admin() && $sys['channel_id'] == $i[0]['uid'])
|
// If the item originated on this site+channel the deletion will propagate downstream.
|
||||||
$can_delete = true;
|
// Otherwise just the local copy is removed.
|
||||||
|
|
||||||
|
if(is_site_admin()) {
|
||||||
|
$local_delete = true;
|
||||||
|
if(intval($i[0]['item_origin']))
|
||||||
|
$can_delete = true;
|
||||||
|
}
|
||||||
|
|
||||||
$ob_hash = get_observer_hash();
|
$ob_hash = get_observer_hash();
|
||||||
if($ob_hash && ($ob_hash === $i[0]['author_xchan'] || $ob_hash === $i[0]['owner_xchan'] || $ob_hash === $i[0]['source_xchan']))
|
if($ob_hash && ($ob_hash === $i[0]['author_xchan'] || $ob_hash === $i[0]['owner_xchan'] || $ob_hash === $i[0]['source_xchan'])) {
|
||||||
$can_delete = true;
|
$can_delete = true;
|
||||||
|
}
|
||||||
|
|
||||||
if(! ($can_delete || $local_delete)) {
|
if(! ($can_delete || $local_delete)) {
|
||||||
notice( t('Permission denied.') . EOL);
|
notice( t('Permission denied.') . EOL);
|
||||||
|
@ -3561,7 +3561,6 @@ function item_expire($uid,$days,$comment_days = 7) {
|
|||||||
drop_item($item['id'],false);
|
drop_item($item['id'],false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zotlabs\Daemon\Master::Summon(array('Notifier','expire',$uid));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function retain_item($id) {
|
function retain_item($id) {
|
||||||
|
Reference in New Issue
Block a user