What's new
[XB] User Profile Edit Notify

[XB] User Profile Edit Notify [Paid] 2.0.1 Patch Level 2

You must log in or register to purchase ($15.00)

Painbaker

Administrator
Painbaker submitted a new resource:

[XB] User Profile Edit Notify - Get notified when users update their profile fields

Get notified when users update their profile fields.

Track changes for moderation purposes or to ensure user compliance with community guidelines.

Features:​

  • 🔎 Track Profile Changes: Monitor edits for moderation or compliance.
  • ⚙️ Permission Control: Set who can trigger and receive notifications.
  • 🛠 Custom Field Support: Choose which profile fields to track, including custom fields.
  • 📩 Email & Alert Options: Enable...

Read more about this resource...
 
Can i use this to see if a compromised account tries to change an email? I'd like to get notified when users change their emails or 2FA
 
Can i use this to see if a compromised account tries to change an email? I'd like to get notified when users change their emails or 2FA
This can be added if you’re interested. At the moment, it only checks profile field changes (like signature, location, about, custom fields)
 
Bug report:

Code:
[LIST]
[*]ErrorException: [E_WARNING] Attempt to read property "custom_fields" on null
[*]src/XF/Criteria/UserCriteria.php:21
[*]Generated by: Unknown account
[*]Jul 6, 2026 at 12:16 PM
[/LIST]
[HEADING=2]Stack trace[/HEADING]
#0 src/XF/Criteria/UserCriteria.php(21): XF::handlePhpError(2, '[E_WARNING] Att...', '/var/www/vhosts...', 21)
#1 src/XF/Criteria/AbstractCriteria.php(54): XF\Criteria\UserCriteria->isSpecialMatched('user_field_scha...', Array, Object(SV\ElasticSearchEssentials\XF\Entity\User))
#2 src/XF/Repository/UserGroupPromotionRepository.php(116): XF\Criteria\AbstractCriteria->isMatched(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#3 src/XF/Service/User/RegistrationService.php(400): XF\Repository\UserGroupPromotionRepository->updatePromotionsForUser(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#4 src/XF/Service/User/RegistrationService.php(342): XF\Service\User\RegistrationService->updateUserAchievements()
#5 src/addons/SV/ModeratorEssentials/XF/Service/User/Registration.php(17): XF\Service\User\RegistrationService->_save()
#6 src/XF/Service/ValidateAndSavableTrait.php(42): SV\ModeratorEssentials\XF\Service\User\Registration->_save()
#7 src/XF/Pub/Controller/RegisterController.php(460): XF\Service\User\RegistrationService->save()
#8 src/addons/OzzModz/Spaminator/XF/Pub/Controller/Register.php(134): XF\Pub\Controller\RegisterController->actionRegister()
#9 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/Register.php(91): OzzModz\Spaminator\XF\Pub\Controller\Register->actionRegister()
#10 src/XF/Mvc/Dispatcher.php(362): SV\SignupAbuseBlocking\XF\Pub\Controller\Register->actionRegister(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Register', 'Register', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Register), Object(XF\Mvc\Reply\Reroute))
#12 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Register), Object(XF\Mvc\Reply\Reroute))
#13 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#14 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#15 src/XF.php(814): XF\App->run()
#16 index.php(23): XF::runApp('XF\\Pub\\App')
#17 {main}
[HEADING=2]Request state[/HEADING]
array(4) {
  ["url"] => string(24) "/login/register-register"
  ["referrer"] => string(25) "https://forum.ih8mud.com/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(21) {
    ["_xfToken"] => string(8) "********"
    ["6eaac17ec5e0ba74c6fb124a55bb6dab6fddf446"] => string(14) "username"
    ["url"] => string(0) ""
    ["8b5cb79aff13298e815d694bc082ae35ac0e03c1"] => string(17) "[email protected]"
    ["13ae4aed1c9429a1e096c8bba79d08dceb0c4a54"] => string(8) "********"
    ["password_confirm"] => string(8) "********"
    ["additional_security"] => string(0) ""
    ["dob_month"] => string(2) "10"
    ["dob_day"] => string(2) "10"
    ["dob_year"] => string(4) "1978"
    ["location"] => string(12) "city, state"
    ["cf-turnstile-response"] => string(709) "1.Y3X7f_CixhVs5GouZ03nB0LfSNJ8jzy3cvmhXg1ggFdCa1OOS4RT857PnDoa599RN-iywn_GkVXXWFR9g89vBrByGTXACweN-WjDa-5Ehs4ECzshffLtYobkDwXTiLIu750kDNuYj71Sk2eYJQtAJEpVP1pm-vxMCsJwFl_TU-wnneSLpt3i_YYY5pdGuRn6G_gJdObQHz_wG3ndaC329dm2U8T9bLMTIJOKla_cImLQqcHMZyEO5E1DgZyq3cY397YAQWpRJy3N294VhoevOFvelLrknMQ4kfScR9oN31InLVcYI6-toBNGDZQfTeN9hXGon8WWL9jOomBcqu3Zw5gcTkkssilkJtonj1WueBW_Is0IqttmBjsamCjBGH7Z3pjUGAc8aggioat9UoUM7rJhlnZGvxD7zusOIuFVtsaqEQwRKtkE0JUYculzV7TPiIiKa-kIN6i3oXf4X1sPivOOf86-0KcV_A2r06jrd7xIcWoIWKkxR-H7BR4WFiKLlzUDFdpVyakkrsLYPtMlvjTEV0QNz39NvIWaRn6sVnzkr-KkFHq5tNaFeMM5eFlB_Hp6vSUr8RnUdk3vCJai-iFHiHb7GBMcn8ZHtNe7Elc.4VLyvtZabLGJIp9s6h3VPQ.587cbae8613e09bf4e7dcc43a53824b7b98eaf037e6505470b38b238b2a13ce0"
    ["email_choice"] => string(1) "1"
    ["accept"] => string(1) "1"
    ["website_code"] => string(0) ""
    ["reg_key"] => string(16) "xveE9rytkyTf-Qt6"
    ["0e4444b07f72733840f22a200a19a31f187c212f"] => string(16) "America/New_York"
    ["timetaken"] => string(7) "743.398"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(1) "/"
  }
}
 
Bug report:

Code:
[LIST]
[*]ErrorException: [E_WARNING] Attempt to read property "custom_fields" on null
[*]src/XF/Criteria/UserCriteria.php:21
[*]Generated by: Unknown account
[*]Jul 6, 2026 at 12:16 PM
[/LIST]
[HEADING=2]Stack trace[/HEADING]
#0 src/XF/Criteria/UserCriteria.php(21): XF::handlePhpError(2, '[E_WARNING] Att...', '/var/www/vhosts...', 21)
#1 src/XF/Criteria/AbstractCriteria.php(54): XF\Criteria\UserCriteria->isSpecialMatched('user_field_scha...', Array, Object(SV\ElasticSearchEssentials\XF\Entity\User))
#2 src/XF/Repository/UserGroupPromotionRepository.php(116): XF\Criteria\AbstractCriteria->isMatched(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#3 src/XF/Service/User/RegistrationService.php(400): XF\Repository\UserGroupPromotionRepository->updatePromotionsForUser(Object(SV\ElasticSearchEssentials\XF\Entity\User))
#4 src/XF/Service/User/RegistrationService.php(342): XF\Service\User\RegistrationService->updateUserAchievements()
#5 src/addons/SV/ModeratorEssentials/XF/Service/User/Registration.php(17): XF\Service\User\RegistrationService->_save()
#6 src/XF/Service/ValidateAndSavableTrait.php(42): SV\ModeratorEssentials\XF\Service\User\Registration->_save()
#7 src/XF/Pub/Controller/RegisterController.php(460): XF\Service\User\RegistrationService->save()
#8 src/addons/OzzModz/Spaminator/XF/Pub/Controller/Register.php(134): XF\Pub\Controller\RegisterController->actionRegister()
#9 src/addons/SV/SignupAbuseBlocking/XF/Pub/Controller/Register.php(91): OzzModz\Spaminator\XF\Pub\Controller\Register->actionRegister()
#10 src/XF/Mvc/Dispatcher.php(362): SV\SignupAbuseBlocking\XF\Pub\Controller\Register->actionRegister(Object(XF\Mvc\ParameterBag))
#11 src/XF/Mvc/Dispatcher.php(264): XF\Mvc\Dispatcher->dispatchClass('XF:Register', 'Register', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Register), Object(XF\Mvc\Reply\Reroute))
#12 src/XF/Mvc/Dispatcher.php(121): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Pub\Controller\Register), Object(XF\Mvc\Reply\Reroute))
#13 src/XF/Mvc/Dispatcher.php(63): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#14 src/XF/App.php(2824): XF\Mvc\Dispatcher->run()
#15 src/XF.php(814): XF\App->run()
#16 index.php(23): XF::runApp('XF\\Pub\\App')
#17 {main}
[HEADING=2]Request state[/HEADING]
array(4) {
  ["url"] => string(24) "/login/register-register"
  ["referrer"] => string(25) "https://forum.ih8mud.com/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(21) {
    ["_xfToken"] => string(8) "********"
    ["6eaac17ec5e0ba74c6fb124a55bb6dab6fddf446"] => string(14) "username"
    ["url"] => string(0) ""
    ["8b5cb79aff13298e815d694bc082ae35ac0e03c1"] => string(17) "[email protected]"
    ["13ae4aed1c9429a1e096c8bba79d08dceb0c4a54"] => string(8) "********"
    ["password_confirm"] => string(8) "********"
    ["additional_security"] => string(0) ""
    ["dob_month"] => string(2) "10"
    ["dob_day"] => string(2) "10"
    ["dob_year"] => string(4) "1978"
    ["location"] => string(12) "city, state"
    ["cf-turnstile-response"] => string(709) "1.Y3X7f_CixhVs5GouZ03nB0LfSNJ8jzy3cvmhXg1ggFdCa1OOS4RT857PnDoa599RN-iywn_GkVXXWFR9g89vBrByGTXACweN-WjDa-5Ehs4ECzshffLtYobkDwXTiLIu750kDNuYj71Sk2eYJQtAJEpVP1pm-vxMCsJwFl_TU-wnneSLpt3i_YYY5pdGuRn6G_gJdObQHz_wG3ndaC329dm2U8T9bLMTIJOKla_cImLQqcHMZyEO5E1DgZyq3cY397YAQWpRJy3N294VhoevOFvelLrknMQ4kfScR9oN31InLVcYI6-toBNGDZQfTeN9hXGon8WWL9jOomBcqu3Zw5gcTkkssilkJtonj1WueBW_Is0IqttmBjsamCjBGH7Z3pjUGAc8aggioat9UoUM7rJhlnZGvxD7zusOIuFVtsaqEQwRKtkE0JUYculzV7TPiIiKa-kIN6i3oXf4X1sPivOOf86-0KcV_A2r06jrd7xIcWoIWKkxR-H7BR4WFiKLlzUDFdpVyakkrsLYPtMlvjTEV0QNz39NvIWaRn6sVnzkr-KkFHq5tNaFeMM5eFlB_Hp6vSUr8RnUdk3vCJai-iFHiHb7GBMcn8ZHtNe7Elc.4VLyvtZabLGJIp9s6h3VPQ.587cbae8613e09bf4e7dcc43a53824b7b98eaf037e6505470b38b238b2a13ce0"
    ["email_choice"] => string(1) "1"
    ["accept"] => string(1) "1"
    ["website_code"] => string(0) ""
    ["reg_key"] => string(16) "xveE9rytkyTf-Qt6"
    ["0e4444b07f72733840f22a200a19a31f187c212f"] => string(16) "America/New_York"
    ["timetaken"] => string(7) "743.398"
    ["_xfResponseType"] => string(4) "json"
    ["_xfWithData"] => string(1) "1"
    ["_xfRequestUri"] => string(1) "/"
  }
}

I don't see any relation to this add-on in this stack trace

It seems the problem here with the user group promotions, which are attempting to be applied to the user immediately after registration when user profile record is not saved yet
 
Thank you, I had uninstalled the plugin for a couple weeks as we worked thru a server/host move, and this happened immediately after it was reinstalled. Assumed it was related. I'll dig into it :)
 
Back
Top