403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/forum/wp-content/plugins/simplepress/admin/library/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/forum/wp-content/plugins/simplepress/admin/library/spa-privacy.php
<?php
/*
Simple:Press
Desc: Privacy - Personal Data Export and Erase
$LastChangedDate: 2014-05-24 09:12:47 +0100 (Sat, 24 May 2014) $
$Rev: 11461 $
*/

if ( ! defined( 'ABSPATH' ) ) {
	die('Access denied - you cannot directly call this file');
}


# --------------------------------------------
# Export of SP related personal profile data
# --------------------------------------------

# Specific forum profile data filter hook
add_filter('sp_privacy_profile_data', 'sp_privacy_profile_export', 20, 4);

# Register the profile export
function sp_register_profile_exporter($exporters) {
	$exporters['simple_press_profile'] = array(
		'exporter_friendly_name' => SP()->primitives->admin_text('Simple Press Profile'),
		'callback' => 'sp_profile_exporter'
	);
	return $exporters;
}

# Main SP Profile Data Exporter function
function sp_profile_exporter($email_address, $page = 1) {
	# get users ID
	$userID = SP()->DB->table(SPUSERS, "user_email='$email_address'", 'ID');
	if (!empty($userID)) {
		$exportItems = array();
		$spUserData = SP()->user->get($userID);
		$groupID = SP()->primitives->admin_text('Forum Profile Group');
		$groupLabel = SP()->primitives->admin_text('Forum Profile');

		# call generic forum profile filter hook		
		$exportItems = apply_filters('sp_privacy_profile_data', $exportItems, $spUserData, $groupID, $groupLabel);
		# call new section filter hook
		$exportItems = apply_filters('sp_privacy_profile_section_data', $exportItems, $spUserData);

		return array(
			'data' => $exportItems,
			'done' => true
		);
	}
}

# Specific profile data exporter using general profile filter hook
function sp_privacy_profile_export($exportItems, $spUserData, $groupID, $groupLabel) {
	$data = array();

	# Additional Profile Data from UserMeta
	$items = array(
		'display_name' 	=> SP()->primitives->admin_text('Forum Display Name'),
		'location'		=> SP()->primitives->admin_text('Location'),
		'msn'			=> SP()->primitives->admin_text('MSN Identity'),
		'icq'			=> SP()->primitives->admin_text('ICQ Identity'),
		'skype'			=> SP()->primitives->admin_text('Skype Identity'),
		'myspace'		=> SP()->primitives->admin_text('MySpace Identity'),
		'facebook'		=> SP()->primitives->admin_text('FaceBook Identity'),
		'twitter'		=> SP()->primitives->admin_text('Twitter Identity'),
		'linkedin'		=> SP()->primitives->admin_text('LinedIn Identity'),
		'youtube'		=> SP()->primitives->admin_text('YouTube Identity'),
		'googleplus'	=> SP()->primitives->admin_text('Google Plus Identity'),
		'instagram'		=> SP()->primitives->admin_text('Instagram Identity'),
		'photos'		=> SP()->primitives->admin_text('Photo URL')
	);

	foreach($items as $item => $label) {
		if (!empty($spUserData->$item)) {
			# checkfor photos as this is an array
			if ($item == 'photos') {
				foreach($spUserData->$item as $photo) {
					$data[] = array(
						'name'	=> $label,
						'value'	=> $photo
					);
				}				
			} else {
				$data[] = array(
					'name'	=>	$label,
					'value'	=>	$spUserData->$item
				);
			}
		}
	}

	# Add any IP addresses used in forum posts
	$query				= new stdClass();
	$query->type		= 'col';
	$query->table		= SPPOSTS;
	$query->fields		= 'poster_ip';
	$query->distinct	=	true;
	$query->where		= "user_id = ".$spUserData->ID." AND poster_ip != ''";
	$query->orderby		= 'poster_ip';
	$ips = SP()->DB->select($query);
	
	if (!empty($ips)) {
		$ipList = '';
		foreach($ips as $ip) {
			$ipList.= $ip.'</br>';		
		}
		$data[] = array(
			'name'	=>	SP()->primitives->admin_text('Used IP Addresses'),
			'value'	=>	$ipList
		);
	}
	
	# Now to export the base forum profile data
	$exportItems[] = array(
		'group_id'		=> $groupID,
		'group_label' 	=> $groupLabel,
		'item_id' => 'Profile',
		'data' => $data
	);

	return $exportItems;
}


# --------------------------------------------
# Export of SP post data
# --------------------------------------------

# Specific forum profile data filter hook
add_filter('sp_privacy_forum_data', 'sp_privacy_forum_export', 21, 7);

function sp_register_forum_exporter($exporters) {
	$exporters['simple_press_forum'] = array(
		'exporter_friendly_name' => SP()->primitives->admin_text('Simple Press Forum'),
		'callback' => 'sp_forum_exporter'
	);
	return $exporters;
}

# Main SP Forum Data Exporter function
function sp_forum_exporter($email_address, $page = 0) {
	$ops = SP()->options->get('spPrivacy');
	# Limit us to avoid timing out
	if (!empty($ops['number'])) {
		$number = $ops['number'];
	} else {
		$number = 200;
	}
	$page = (int) $page;
	$done = false;
	$data = array();

	# get users ID
	$userID = SP()->DB->table(SPUSERS, "user_email='$email_address'", 'ID');
	if (!empty($userID)) {
		$exportItems = array();
		$spUserData = SP()->user->get($userID);
		$groupID = SP()->primitives->admin_text('Forum Post Group');
		$groupLabel = SP()->primitives->admin_text('Forum Posts');

		# call generic forum profile filter hook		
		$exportItems = apply_filters('sp_privacy_forum_data', $exportItems, $spUserData, $groupID, $groupLabel, $page, $number, $done);
		# call new section filter hook
		$exportItems = apply_filters('sp_privacy_forum_section_data', $exportItems, $spUserData, $groupID, $groupLabel, $page, $number, $done);

		return array(
			'data' => $exportItems,
			'done' => true
		);
	}
}

# Specific profile data exporter using general profile filter hook
function sp_privacy_forum_export($exportItems, $spUserData, $groupID, $groupLabel, $page, $number, $done) {
	$ops = SP()->options->get('spPrivacy');
	if($ops['posts'] == false) return $exportItems;

	$data = array();
	
	# Select forum posts
	$query				= new stdClass();
	$query->type		= 'set';
	$query->table		= SPPOSTS;
	$query->fields		= 'post_date, post_content, topic_name';
	$query->join		= SPTOPICS.' ON '.SPPOSTS.'.topic_id = '.SPTOPICS.'.topic_id';
	$query->where		= SPPOSTS.".user_id = $spUserData->ID.";
	$query->orderby		= SPPOSTS.'.post_id';
	$query->limit		= $page.', '.$number;
	$posts = SP()->DB->select($query);
	
	if (empty($posts) && $page==0) {
		$data[] = array(
			'name'	=>	SP()->primitives->admin_text('No forum posts'),
			'value'	=>	'',
			'done'	=> true
		);
		$done = true;
	} elseif (empty($posts)) {
		$data[] = array(
			'name'	=>	'',
			'value'	=>	'',
			'done'	=> true
		);
		$done = true;
	} else {
		foreach($posts as $post) {
			$nameValue = SP()->displayFilters->title($post->topic_name.' - '.$post->post_date);
			$data[] = array(
				'name'	=> $nameValue,
				'value'	=> SP()->displayFilters->content($post->post_content)
			);
		}
	}

	# Now to export the forum post data
	$exportItems[] = array(
		'group_id'		=> $groupID,
		'group_label' 	=> $groupLabel,
		'item_id' => 'Posts',
		'data' => $data,
		'done' => $done
	);

	return $exportItems;
}


# --------------------------------------------
# Erasure of SP related data
# --------------------------------------------

# Register the forum data eraser
function sp_register_forum_eraser($erasers) {
	$erasers['simple-press'] = array(
		'eraser_friendly_name' => SP()->primitives->admin_text('Forum Data'),
		'callback'             => 'sp_data_eraser'
    );
  return $erasers;
}

# Perform the actual erasure
# This calls the SP standard user deletion
# code which converts all forum posts to 'Guest' 
# and removes all other traces of the user.
function sp_data_eraser($email_address, $page = 1) {
	# get users ID
	$userID = SP()->DB->table(SPUSERS, "user_email='$email_address'", 'ID');
	$message = '';
	if (!empty($userID)) {
		$ops = SP()->options->get('spPrivacy');
		if ($ops['erase'] == 2) {
			SP()->user->delete_data($userID, '', 'spdelete', 0);
			$message = SP()->primitives->admin_text('Forum data has been erased for this user');
		} else {
			SP()->user->delete_data($userID, '', 'spguest', 0, $ops['mess']);
			$message = SP()->primitives->admin_text('Forum data anonymised for this user');
		}
	}
	return array( 'items_removed' => 0,
	'items_retained' => false,
	'messages' => array($message),
	'done' => true,
  );
}

// spdelete

Youez - 2016 - github.com/yon3zu
LinuXploit