Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
better-wp-security
/
core
/
packages
/
data
/
src
:
resolvers.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/** * External dependencies */ import { get } from 'lodash'; /** * WordPress dependencies */ import { controls } from '@wordpress/data'; /** * Internal dependencies */ import { apiFetch } from './controls'; import { receiveActors, receiveActorTypes, receiveBatchMaxItems, receiveCurrentUserId, receiveIndex, receiveSiteInfo, receiveUser, } from './actions'; export function* getIndex() { const index = yield apiFetch( { path: '/ithemes-security/v1?context=help', } ); yield receiveIndex( index ); } export const getSchema = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const getRoles = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const getRequirementsInfo = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const getServerType = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const getInstallType = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const hasPatchstack = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const isLiquidWebCustomer = () => ( { resolveSelect } ) => resolveSelect.getIndex(); export const getUser = { *fulfill( id ) { const currentUserId = yield controls.select( 'ithemes-security/core', 'getCurrentUserId' ); const user = yield apiFetch( { path: `/wp/v2/users/${ id === currentUserId ? 'me' : id }?context=edit`, } ); yield receiveUser( user ); }, isFulfilled( state, userId ) { return !! state.users.byId[ userId ]; }, }; export const getCurrentUser = { *fulfill() { const user = yield apiFetch( { path: '/wp/v2/users/me?context=edit', } ); yield receiveUser( user ); yield receiveCurrentUserId( user.id ); }, isFulfilled( state ) { return ( state.users.currentId && state.users.byId[ state.users.currentId ] ); }, }; export const getActorTypes = { *fulfill() { const response = yield apiFetch( { path: '/ithemes-security/v1/actors?_embed=1', } ); const types = []; for ( const type of response ) { const actors = get( type, [ '_embedded', 'wp:items', 0 ], [] ); yield receiveActors( type.slug, actors ); types.push( { slug: type.slug, label: type.label } ); } yield receiveActorTypes( types ); }, isFulfilled( state ) { return state.actors.types.length > 0; }, }; export const getActors = { *fulfill() { yield controls.select( 'ithemes-security/core', 'getActorTypes' ); }, isFulfilled( state, type ) { return !! state.actors.byType[ type ]; }, }; export const getSiteInfo = { *fulfill() { const response = yield apiFetch( { path: '/?_fields=name,description,url,home,multisite', } ); yield receiveSiteInfo( response ); }, isFulfilled( state ) { return !! state.siteInfo; }, }; export function* getBatchMaxItems() { const response = yield apiFetch( { path: '/batch/v1', method: 'OPTIONS', } ); yield receiveBatchMaxItems( response.endpoints[ 0 ].args.requests.maxItems ); }