Changeset 3236757
- Timestamp:
- 02/07/2025 06:20:32 PM (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ejabberd-account-tools/trunk/includes/webpresence.php
r3234189 r3236757 40 40 'methods' => 'POST', 41 41 'callback' => 'ejabat_webpresence_form', 42 'args' => ejabat_webpresence_form_arguments(), 43 'permission_callback' => '__return_true' 42 'permission_callback' => '__return_true', 43 'args' => array( 44 'session' => array( 45 'type' => 'string', 46 'required' => true, 47 'default' => 'undefined', 48 'sanitize_callback' => function($param, $request, $key) { 49 return stripslashes_deep(sanitize_text_field($param)); 50 } 51 ) 52 ) 44 53 )); 45 54 } 46 55 add_action('rest_api_init', 'ejabat_route_webpresence_form'); 47 48 // Web Presence login and configuration form arguments49 function ejabat_webpresence_form_arguments() {50 $args = array();51 $args['session'] = array(52 'type' => 'string',53 'required' => true,54 'default' => 'undefined',55 'sanitize_callback' => function($param, $request, $key) {56 return stripslashes_deep(sanitize_text_field($param));57 },58 );59 return $args;60 }61 56 62 57 // Web Presence login and configuration form callback … … 77 72 $xml_css = @simplexml_load_string(json_decode($response['body']))->webpresence; 78 73 $css = $xml_css->enabled ?: 'false'; 79 $css_available = $xml_css->available ?: '#4 caf50';80 $css_chate = $xml_css->chate ?: '#8 bc34a';74 $css_available = $xml_css->available ?: '#4CAF50'; 75 $css_chate = $xml_css->chate ?: '#8BC34A'; 81 76 $css_away = $xml_css->away ?: '#795548'; 82 $css_xa = $xml_css->xa ?: '#607 d8b';83 $css_dnd = $xml_css->dnd ?: '# f44336';84 $css_unavailable = $xml_css->unavailable ?: '#9 e9e9e';77 $css_xa = $xml_css->xa ?: '#607D8B'; 78 $css_dnd = $xml_css->dnd ?: '#F44336'; 79 $css_unavailable = $xml_css->unavailable ?: '#9E9E9E'; 85 80 $response = ejabat_get_xmpp_data('private_get', array('user' => $transient['user'], 'host' => $transient['host'], 'element' => 'webpresence', 'ns' => 'json')); 86 81 $json = @simplexml_load_string(json_decode($response['body']))->webpresence->enabled ?: 'false'; … … 163 158 'methods' => 'POST', 164 159 'callback' => 'ejabat_configure_webpresence', 165 'args' => ejabat_configure_webpresence_arguments(), 166 'permission_callback' => '__return_true' 160 'permission_callback' => '__return_true', 161 'args' => array( 162 'session' => array( 163 'type' => 'string', 164 'required' => true, 165 'sanitize_callback' => function($param, $request, $key) { 166 return stripslashes_deep(sanitize_text_field($param)); 167 } 168 ), 169 'css' => array( 170 'type' => 'boolean', 171 'required' => true, 172 'default' => 'false' 173 ), 174 'css_available' => array( 175 'type' => 'string', 176 'required' => true, 177 'default' => '#4CAF50', 178 'sanitize_callback' => function($param, $request, $key) { 179 return strtoupper(sanitize_text_field($param)); 180 }, 181 'validate_callback' => function($param, $request, $key) { 182 return ctype_xdigit(ltrim($param, '#')); 183 } 184 ), 185 'css_chate' => array( 186 'type' => 'string', 187 'required' => true, 188 'default' => '#8BC34A', 189 'sanitize_callback' => function($param, $request, $key) { 190 return strtoupper(sanitize_text_field($param)); 191 }, 192 'validate_callback' => function($param, $request, $key) { 193 return ctype_xdigit(ltrim($param, '#')); 194 } 195 ), 196 'css_away' => array( 197 'type' => 'string', 198 'required' => true, 199 'default' => '#795548', 200 'sanitize_callback' => function($param, $request, $key) { 201 return strtoupper(sanitize_text_field($param)); 202 }, 203 'validate_callback' => function($param, $request, $key) { 204 return ctype_xdigit(ltrim($param, '#')); 205 } 206 ), 207 'css_xa' => array( 208 'type' => 'string', 209 'required' => true, 210 'default' => '#607D8B', 211 'sanitize_callback' => function($param, $request, $key) { 212 return strtoupper(sanitize_text_field($param)); 213 }, 214 'validate_callback' => function($param, $request, $key) { 215 return ctype_xdigit(ltrim($param, '#')); 216 } 217 ), 218 'css_dnd' => array( 219 'type' => 'string', 220 'required' => true, 221 'default' => '#F44336', 222 'sanitize_callback' => function($param, $request, $key) { 223 return strtoupper(sanitize_text_field($param)); 224 }, 225 'validate_callback' => function($param, $request, $key) { 226 return ctype_xdigit(ltrim($param, '#')); 227 } 228 ), 229 'css_unavailable' => array( 230 'type' => 'string', 231 'required' => true, 232 'default' => '#9E9E9E', 233 'sanitize_callback' => function($param, $request, $key) { 234 return strtoupper(sanitize_text_field($param)); 235 }, 236 'validate_callback' => function($param, $request, $key) { 237 return ctype_xdigit(ltrim($param, '#')); 238 } 239 ), 240 'json' => array( 241 'type' => 'boolean', 242 'required' => true, 243 'default' => 'false' 244 ), 245 'image' => array( 246 'type' => 'boolean', 247 'required' => true, 248 'default' => 'false' 249 ) 250 ) 167 251 )); 168 252 } 169 253 add_action('rest_api_init', 'ejabat_route_configure_webpresence'); 170 171 // Configure Web Presence arguments172 function ejabat_configure_webpresence_arguments() {173 $args = array();174 $args['session'] = array(175 'type' => 'string',176 'required' => true,177 'sanitize_callback' => function($param, $request, $key) {178 return sanitize_text_field($param);179 },180 );181 $args['css'] = array(182 'type' => 'boolean',183 'required' => true,184 'default' => 'false'185 );186 $args['css_available'] = array(187 'type' => 'string',188 'required' => true,189 'default' => 'false'190 );191 $args['css_chate'] = array(192 'type' => 'string',193 'required' => true,194 'default' => 'false'195 );196 $args['css_away'] = array(197 'type' => 'string',198 'required' => true,199 'default' => 'false'200 );201 $args['css_xa'] = array(202 'type' => 'string',203 'required' => true,204 'default' => 'false'205 );206 $args['css_dnd'] = array(207 'type' => 'string',208 'required' => true,209 'default' => 'false'210 );211 $args['css_unavailable'] = array(212 'type' => 'string',213 'required' => true,214 'default' => 'false'215 );216 $args['json'] = array(217 'type' => 'boolean',218 'required' => true,219 'default' => 'false'220 );221 $args['image'] = array(222 'type' => 'boolean',223 'required' => true,224 'default' => 'false'225 );226 return $args;227 }228 254 229 255 // Configure Web Presence callback … … 301 327 'methods' => 'GET', 302 328 'callback' => 'ejabat_webpresence_css', 329 'permission_callback' => '__return_true', 303 330 'args' => array( 304 331 'jid' => array( 305 'validate_callback' => function($param, $request, $key) { 306 return is_email($param); 307 } 332 'validate_callback' => 'is_email' 308 333 ) 309 ), 310 'permission_callback' => '__return_true' 334 ) 311 335 )); 312 336 } … … 325 349 $transient = array( 326 350 'enabled' => $xml['enabled'] ?: 'false', 327 'available' => $xml['available'] ?: '#4 caf50',328 'chate' => $xml['chate'] ?: '#8 bc34a',351 'available' => $xml['available'] ?: '#4CAF50', 352 'chate' => $xml['chate'] ?: '#8BC34A', 329 353 'away' => $xml['away'] ?: '#795548', 330 'xa' => $xml['xa'] ?: '#607 d8b',331 'dnd' => $xml['dnd'] ?: '# f44336',332 'unavailable' => $xml['unavailable'] ?: '#9 e9e9e'354 'xa' => $xml['xa'] ?: '#607D8B', 355 'dnd' => $xml['dnd'] ?: '#F44336', 356 'unavailable' => $xml['unavailable'] ?: '#9E9E9E' 333 357 ); 334 358 set_transient('ejabat_webpresence_css_'.$user.'@'.$host, $transient); … … 383 407 'methods' => 'GET', 384 408 'callback' => 'ejabat_webpresence_json', 409 'permission_callback' => '__return_true', 385 410 'args' => array( 386 411 'jid' => array( 387 'validate_callback' => function($param, $request, $key) { 388 return is_email($param); 389 } 412 'validate_callback' => 'is_email' 390 413 ) 391 ), 392 'permission_callback' => '__return_true' 414 ) 393 415 )); 394 416 } … … 448 470 'methods' => 'GET', 449 471 'callback' => 'ejabat_webpresence_image', 472 'permission_callback' => '__return_true', 450 473 'args' => array( 451 474 'jid' => array( 452 'validate_callback' => function($param, $request, $key) { 453 return is_email($param); 454 } 475 'validate_callback' => 'is_email' 455 476 ) 456 ), 457 'permission_callback' => '__return_true' 477 ) 458 478 )); 459 479 }
Note: See TracChangeset
for help on using the changeset viewer.