403Webshell
Server IP : 195.130.67.5  /  Your IP : 216.73.217.154
Web Server : Microsoft-IIS/10.0
System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586
User : IUSR ( 0)
PHP Version : 7.4.19
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Old Sites/repository/wp-content/plugins/yop-poll/admin/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Old Sites/repository/wp-content/plugins/yop-poll/admin/models/bans.php
<?php
class YOP_Poll_Bans {
	private static $errors_present = false,
			$error_text,
			$by_allowed = array( 'ip', 'email', 'username' ),
			$for_allowed = array( 'hours', 'days', 'weeks', 'months' ),
			$sort_order_allowed = array( 'asc', 'desc' ),
			$order_by_allowed = array( 'id', 'name', 'author', 'ban_by', 'ban_value', 'ban_date' ),
			$bans_per_page = 10;
	public static function get_owner( $ban_id ) {
		$query = $GLOBALS['wpdb']->prepare(
			"SELECT * FROM {$GLOBALS['wpdb']->yop_poll_bans} WHERE `id` = %s", $ban_id
		);
		$ban = $GLOBALS['wpdb']->get_row( $query, OBJECT );
		if( null !== $ban ){
			return $ban->author;
		} else {
			return false;
		}
	}
	public static function paginate( $params ) {
		$return_data = array();
		$total_pages = 0;
		$total_polls = 0;
		$current_user = wp_get_current_user();
		if ( current_user_can( 'yop_poll_results_others' ) ) {
			$query = "SELECT COUNT(*) FROM {$GLOBALS['wpdb']->yop_poll_bans}";
			if ( isset( $params['q'] ) && ( '' !== $params['q'] ) ) {
				$params['q'] = "'" . '%' . esc_sql( $GLOBALS['wpdb']->esc_like( $params['q'] ) ) . '%' . "'";
				$query .= " WHERE `b_value` LIKE {$params['q']}";
			}
		} else if ( current_user_can( 'yop_poll_results_own' ) ) {
			$query = "SELECT COUNT(*) FROM {$GLOBALS['wpdb']->yop_poll_bans} WHERE `author` = '" . $current_user->ID . "'";
			if ( isset( $params['q'] ) && ( '' !== $params['q'] ) ) {
				$params['q'] = "'" . '%' . esc_sql( $GLOBALS['wpdb']->esc_like( $params['q'] ) ) . '%' . "'";
				$query .= " AND `b_value` LIKE {$params['q']}";
			}
		}
		if ( '' !== $query ) {
			$total_bans = $GLOBALS['wpdb']->get_var( $query );
		}
		if ( 0 < $total_bans ) {
			if ( $total_bans <= self::$bans_per_page ) {
				$data['pagination'] = '';
				$page = 1;
				$total_pages = 1;
			} else {
				$total_pages = intval( ceil( $total_bans / self::$bans_per_page ) );
			}
		} else {
			$data['pagination'] = '';
		}
		if ( 1 < $total_pages ){
			$pagination['first_page'] = '<span class="tablenav-pages-navspan" aria-hidden="true">
							«
						  </span>';
			$pagination['previous_page'] = '<span class="screen-reader-text">
								' . __( 'Previous page', 'yop-poll' ) . '
							</span>
							<span class="tablenav-pages-navspan" aria-hidden="true">
								‹
							</span>';
			$pagination['next_page'] = '<span class="screen-reader-text">' . __( 'Next page', 'yop-poll' ) . '
							</span>
							<span aria-hidden="true">›</span>';
			$pagination['last_page'] = '<span class="tablenav-pages-navspan" aria-hidden="true">
							»
							</span>';
			if ( 1 === intval( $params['page_no'] ) ) {
				//we're on the first page.
				$links['next_page'] = esc_url(
						add_query_arg(
							array(
								'action' => false,
								'ban_id' => false,
								'_token' => false,
								'order_by' => $params['order_by'],
								'sort_order' => $params['sort_order'],
								'q' => htmlentities( $params['q'] ),
								'page_no' => $params['page_no']+1
							)
						)
					);
				$pagination['next_page'] = "<a
										class=\"next-page\"
										href=\"{$links['next_page']}\">{$pagination['next_page']}</a>";
				if ( 2 < intval( $total_pages ) ) {
					$links['last_page'] = esc_url(
							add_query_arg(
								array(
									'action' => false,
									'ban_id' => false,
									'_token' => false,
									'order_by' => $params['order_by'],
									'sort_order' => $params['sort_order'],
									'q' => htmlentities( $params['q'] ),
									'page_no' => intval( $total_pages )
								)
							)
						);
					$pagination['last_page'] = "<a
												class=\"last-page\"
												href=\"{$links['last_page']}\">{$pagination['last_page']}</a>";
				}
			} else if ( intval( $params['page_no'] ) === intval( $total_pages ) ) {
				//we're on the last page
				$links['previous_page'] = esc_url(
						add_query_arg(
							array(
								'action' => false,
								'ban_id' => false,
								'_token' => false,
								'order_by' => $params['order_by'],
								'sort_order' => $params['sort_order'],
								'q' => htmlentities( $params['q'] ),
								'page_no' => $params['page_no']-1
							)
						)
					);
				$pagination['previous_page'] = "<a
											class=\"prev-page\"
											href=\"{$links['previous_page']}\">{$pagination['previous_page']}</a>";
				if ( 2 < intval( $total_pages ) ) {
					$links['first_page'] = esc_url(
							add_query_arg(
								array(
									'action' => false,
									'ban_id' => false,
									'_token' => false,
									'order_by' => $params['order_by'],
									'sort_order' => $params['sort_order'],
									'q' => htmlentities( $params['q'] ),
									'page_no' => 1
								)
							)
						);
					$pagination['first_page'] = "<a
												class=\"first-page\"
												href=\"{$links['first_page']}\">{$pagination['first_page']}</a>";
				}
			} else {
				//we're on an intermediary page
				$links['previous_page'] = esc_url(
						add_query_arg(
							array(
								'action' => false,
								'ban_id' => false,
								'_token' => false,
								'order_by' => $params['order_by'],
								'sort_order' => $params['sort_order'],
								'q' => htmlentities( $params['q'] ),
								'page_no' => $params['page_no']-1
							)
						)
					);
				$links['next_page'] = esc_url(
						add_query_arg(
							array(
								'action' => false,
								'ban_id' => false,
								'_token' => false,
								'order_by' => $params['order_by'],
								'sort_order' => $params['sort_order'],
								'q' => htmlentities( $params['q'] ),
								'page_no' => $params['page_no']+1
							)
						)
					);
				$pagination['previous_page'] = "<a
											class=\"prev-page\"
											href=\"{$links['previous_page']}\">{$pagination['previous_page']}</a>";
				$pagination['next_page'] = "<a
											class=\"prev-page\"
											href=\"{$links['next_page']}\">{$pagination['next_page']}</a>";
				if ( 2 < intval( $params['page_no'] ) ) {
					$links['first_page'] = esc_url(
							add_query_arg(
								array(
									'action' => false,
									'ban_id' => false,
									'_token' => false,
									'order_by' => $params['order_by'],
									'sort_order' => $params['sort_order'],
									'q' => htmlentities( $params['q'] ),
									'page_no' => 1
								)
							)
						);
					$pagination['first_page'] = "<a
												class=\"first-page\"
												href=\"{$links['first_page']}\">{$pagination['first_page']}</a>";
				}
				if ( ( intval( $params['page_no'] + 2 ) ) <= $total_pages ) {
					$links['last_page'] = esc_url(
							add_query_arg(
								array(
									'action' => false,
									'ban_id' => false,
									'_token' => false,
									'order_by' => $params['order_by'],
									'sort_order' => $params['sort_order'],
									'q' => htmlentities( $params['q'] ),
									'page_no' => intval( $total_pages )
								)
							)
						);
					$pagination['last_page'] = "<a
												class=\"last-page\"
												href=\"{$links['last_page']}\">{$pagination['last_page']}</a>";
				}
			}
		} else {
			$pagination['first_page'] = '';
			$pagination['previous_page'] = '';
			$pagination['next_page'] = '';
			$pagination['last_page'] = '';
		}
		return array(
			'total_bans' => $total_bans,
			'total_pages' => $total_pages,
			'pagination' => $pagination
		);
	}
	public static function get_bans( $params ) {
		$query = '';
		$bans = '';
		$current_user = wp_get_current_user();
		if ( 0 >= intval( $params['page_no'] ) ) {
			$params['page_no'] = 1;
		}
		$pagination = self::paginate( $params );
		if ( !in_array( $params['sort_order'], self::$sort_order_allowed ) ) {
			$params['sort_order'] = SORT_ASC;
		} elseif ( 'desc' === $params['sort_order'] ) {
			$params['sort_order'] = SORT_DESC;
		} else{
			$params['sort_order'] = SORT_ASC;
		}
		if ( !in_array( $params['order_by'], self::$order_by_allowed ) ) {
			$params['order_by'] = 'id';
		}
		if ( $params['page_no'] > $pagination['total_pages']) {
			$params['page_no'] = 1;
		}
		$limit = self::$bans_per_page * ( $params['page_no'] - 1 );
		$limit_query = " LIMIT {$limit}, ". self::$bans_per_page;
		if ( current_user_can( 'yop_poll_results_others' ) ) {
			$query = "SELECT bans.id, bans.poll_id, bans.author, bans.b_by, bans.b_value, bans.added_date,"
						. " polls.name"
			 			. " FROM {$GLOBALS['wpdb']->yop_poll_bans} as bans LEFT JOIN {$GLOBALS['wpdb']->yop_poll_polls} as polls"
						. " ON bans.`poll_id` = polls.`id`";
			if ( isset( $params['q'] ) && ( '' !== $params['q'] ) ) {
				$params['q'] = "'" . '%' . esc_sql( $GLOBALS['wpdb']->esc_like( $params['q'] ) ) . '%' . "'";
				$query .= " WHERE `b_value` LIKE {$params['q']}";
			}
		} else if ( current_user_can( 'yop_poll_results_own' ) ) {
			$query = "SELECT * FROM {$GLOBALS['wpdb']->yop_poll_bans} LEFT JOIN {$GLOBALS['wpdb']->yop_poll_polls}"
						. " ON {$GLOBALS['wpdb']->yop_poll_bans}.`poll_id` = {$GLOBALS['wpdb']->yop_poll_polls}.`id`"
						. " WHERE {$GLOBALS['wpdb']->yop_poll_bans}.`author`=" . $current_user->ID;
			if ( isset( $params['q'] ) && ( '' !== $params['q'] ) ) {
				$params['q'] = "'" . '%' . esc_sql( $GLOBALS['wpdb']->esc_like( $params['q'] ) ) . '%' . "'";
				$query .= " AND `b_value` LIKE {$params['q']}";
			}
		}
		if ( '' !== $query ) {
			$query .= $limit_query;
			$bans = $GLOBALS['wpdb']->get_results( $query, ARRAY_A );
		}
		foreach ( $bans as &$ban ) {
			$ban_author = get_user_by( 'id', $ban['author'] );
			$ban['author'] = $ban_author->display_name;
		}
		foreach ( $bans as $key => $row ) {
			$order_by['id'][$key] = $row['id'];
			$order_by['name'][$key] = $row['name'];
			$order_by['author'][$key] = $row['author'];
			$order_by['ban_by'][$key] = $row['b_by'];
			$order_by['ban_value'][$key] = $row['b_value'];
			$order_by['ban_date'][$key] = $row['added_date'];
		}
		if ( 0 < count( $bans ) ) {
			array_multisort( $order_by[$params['order_by']], $params['sort_order'], $bans );
		}
		return array(
			'bans' => $bans,
			'total_bans' => $pagination['total_bans'],
			'total_pages' => $pagination['total_pages'],
			'pagination' => $pagination['pagination']
		);
	}
	public static function add( $ban ) {
		self::validate_data( $ban->ban );
		$current_user = wp_get_current_user();
		if ( false === self::$errors_present ) {
			$data = array(
				'author' => $current_user->ID,
				'poll_id' => $ban->ban->poll_id,
				'b_by' => $ban->ban->b_by,
				'b_value' => $ban->ban->b_value,
				'added_date' => current_time( 'mysql' ),
				'modified_date' => current_time( 'mysql' )
			);
			if ( false !== $GLOBALS['wpdb']->insert( $GLOBALS['wpdb']->yop_poll_bans, $data ) ) {
				self::$errors_present = false;
			} else {
				self::$errors_present = true;
				self::$error_text = __( 'Error adding ban', 'yop-poll' );
			}
		}
		return array(
			'success' => !self::$errors_present,
			'error' => self::$error_text
		);
	}
	public static function update( stdClass $ban ) {
		$ban_id = $ban->ban->id;
		$current_user = wp_get_current_user();
		if ( intval( $ban_id ) > 0 ) {
			$elements_result = array();
			self::validate_data( $ban->ban );
			if ( false === self::$errors_present ) {
				$data = array(
					'author' => $current_user->ID,
					'poll_id' => $ban->ban->poll_id,
					'b_by' => $ban->ban->b_by,
					'b_value' => $ban->ban->b_value,
					'modified_date' => current_time( 'mysql' )
				);
				if ( false !== $GLOBALS['wpdb']->update( $GLOBALS['wpdb']->yop_poll_bans, $data, array( 'id' => $ban_id ) ) ) {
					self::$errors_present = false;
				} else {
					self::$errors_present = true;
					self::$error_text = __( 'Error updating ban', 'yop-poll' );
				}
			}
		} else {
			self::$errors_present = true;
			self::$error_text = __( 'Error updating poll', 'yop-poll' );
		}
		return array(
			'success' => !self::$errors_present,
			'error' => self::$error_text
		);
	}
	public static function delete( $ban_id ) {
		$delete_ban_result = $GLOBALS['wpdb']->delete(
			$GLOBALS['wpdb']->yop_poll_bans,
			array(
				'id' => $ban_id
			)
		);
		if ( false !== $delete_ban_result ) {
			self::$errors_present = false;
		} else {
			self::$errors_present = true;
			self::$error_text = __( 'Error deleting ban', 'yop-poll' );
		}
		return array(
			'success' => !self::$errors_present,
			'error' => self::$error_text
		);
	}
	public static function delete_all_for_poll( $poll_id ) {
		if ( isset( $poll_id ) && ( 0 < intval( $poll_id ) ) ) {
			$delete_bans_result = $GLOBALS['wpdb']->delete(
				$GLOBALS['wpdb']->yop_poll_bans,
				array(
					'poll_id' => $poll_id
				)
			);
			if ( false !== $delete_bans_result ) {
				self::$errors_present = false;
			} else {
				self::$errors_present = true;
				self::$error_text = __( 'Error deleting bans', 'yop-poll' );
			}
		} else {
			self::$errors_present = true;
			self::$error_text = __( 'Invalid poll', 'yop-poll' );
		}
		return array(
			'success' => !self::$errors_present,
			'error' => self::$error_text
		);
	}
	public static function get_ban( $ban_id ) {
		$query = $GLOBALS['wpdb']->prepare(
			"SELECT * FROM {$GLOBALS['wpdb']->yop_poll_bans} WHERE `id` = %s", $ban_id
		);
		$ban = $GLOBALS['wpdb']->get_row( $query, OBJECT );
		if( null !== $ban ){
			return array(
				'ban' => $ban
			);
		} else {
			return false;
		}
	}
	public static function validate_data( $ban ) {
		if ( false === is_object( $ban ) ) {
			self::$errors_present = true;
			self::$error_text = __( 'Invalid data', 'yop-poll' );
		} else {
			if (
				( false === self::$errors_present ) &&
				( !isset( $ban->poll_id ) ||
				( '' === trim( $ban->poll_id ) ) )
			) {
				self::$errors_present = true;
				self::$error_text = __( 'Data for "Poll" is invalid', 'yop-poll' );
			}
			if (
				( false === self::$errors_present ) &&
				( !isset( $ban->b_by ) ||
				( '' === trim( $ban->b_by ) ) ||
				( false === in_array( $ban->b_by, self::$by_allowed ) )
				)
			) {
				self::$errors_present = true;
				self::$error_text = __( 'Data for "Ban by" is invalid', 'yop-poll' );
			}
			if (
				( false === self::$errors_present ) &&
				( !isset( $ban->b_value ) ||
				( '' === trim( $ban->b_value ) ) )
			) {
				self::$errors_present = true;
				self::$error_text = __( 'Data for "Ban Value" is invalid', 'yop-poll' );
			}
		}
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit