activity_types = include plugin_dir_path( ATKAI_PLUGIN_FILE ) . '/activities/types.php'; $this->logger = $logger; add_action( 'wp_login', array( &$this, 'atk_user_login' ) ); //add_action( 'init', array( &$this, 'setup_user_actions' ) ); add_filter( 'wp_login_failed', array( &$this, 'atk_user_wrong' ), 10, 3 ); // add_filter('logout_redirect', array( &$this, 'atk_logout_redirect' ), 10, 3); add_action('profile_update', array( &$this, 'atk_profile_update'), 10, 2); add_action('set_user_role', array( &$this, 'atk_role_change'), 10, 3); add_action('delete_user', array( &$this, 'atk_after_user_delete'), 10, 2); add_action('remove_user_from_blog', array( &$this, 'atk_after_user_removed'), 10, 2); } public function setup_user_actions() { add_action( 'clear_auth_cookie', array( &$this, 'atk_user_logout') ); } public function atk_user_login( $user_login ) { $activity_type = $this->activity_types['user']['login']; $user = get_user_by('login', $user_login); if ($user) { $description = 'User login: Successful'; $user_id = $user->ID; // Get the user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'login' ); } } public function atk_user_logout(){ $current_user = wp_get_current_user(); $user_id = $current_user->ID; $username = $current_user->user_login; $username = !empty($username) ? $username : 'N/A'; $utils = new AtkUtils(); $current_url = $utils::get_current_url(); // skip on prompted to reauthenticate if( empty($username) && strpos($current_url, 'reauth=1') !== false ) { return; } $description = 'User logout: with username ' . $username . ''; $activity_type = $this->activity_types['user']['logout']; $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'logout' ); } public function atk_user_wrong( $user_login ) { $username = esc_html( ( !empty($user_login) ) ? $user_login : 'unknown' ); $description = "User login: failed using username: $username "; $activity_type = $this->activity_types['user']['failedin']; $user_id = get_current_user_id(); // Get the current user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'failedin' ); } public function atk_logout_redirect( $requested_redirect_to ) { $redirect_url = (!empty($requested_redirect_to)) ? $requested_redirect_to : home_url(); // Get current user info $current_user = wp_get_current_user(); $user_id = $current_user->ID; $description = 'User Redirecting to Link '; $activity_type = $this->activity_types['user']['logout']; $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'logout' ); return $requested_redirect_to; } public function atk_profile_update($user_id, $old_user_data) { $user = get_userdata($user_id); $old_login = $old_user_data->user_login; $new_login = $user->user_login; $old_pass = $old_user_data->user_pass; $new_pass = $user->user_pass; $activity_type = $this->activity_types['user']['profile_edit']; if ($old_pass !== $new_pass) { $activity_type = $this->activity_types['user']['password_reset']; $description = 'User profile updated: User password changed for username ' . $new_login . ''; } else if ($old_login !== $new_login) { $description = 'User profile updated: User login changed from ' . $old_login . ' to ' . $new_login . ''; } else { $description = 'User profile updated: for username ' . $new_login . ''; } $user_id = get_current_user_id(); // Get the current user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'profile_edit' ); } public function atk_role_change( $user_id, $role, $old_roles ) { $user = get_userdata($user_id); $user_login = $user->user_login; $activity_type = $this->activity_types['user']['role_change']; $description = "User profile updated: Role for user {$user_login} changed from " . implode(', ', $old_roles) . " to {$role}"; $user_id = get_current_user_id(); // Get the current user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'role_change' ); } public function atk_after_user_delete ($user_id, $reassign) { $user = get_userdata($user_id); $user_login = $user->user_login; $activity_type = $this->activity_types['user']['deletion']; $description = "User profile updated: the user {$user_login} has been deleted"; $user_id = get_current_user_id(); // Get the current user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'deletion' ); } public function atk_after_user_removed ($user_id, $blog_id) { $user = get_userdata($user_id); $user_login = $user->user_login; $blog_details = get_blog_details(array('blog_id' => $blog_id)); $activity_type = $this->activity_types['user']['user_removed']; $description = "User profile updated: the user {$user_login} removed from site {$blog_details->blogname} "; $user_id = get_current_user_id(); // Get the current user ID $this->logger->insert_log( $user_id, 'User', $activity_type, $description, 'user_removed' ); } }