Jump to content

Nathan Explosion

Clients
  • Posts

    7,153
  • Joined

  • Days Won

    129

 Content Type 

Downloads

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Development Blog

Deprecation Tracker

Providers Directory

Projects

Release Notes v5

Invision Community 5 Bug Tracker

Forums

Events

Store

Gallery

Everything posted by Nathan Explosion

  1. Reporting it as it just occurred on my live site... UPDATE `core_members_known_ip_addresses` `core_members_known_ip_addresses` SET `ip_address`='' WHERE ip_address != '' AND last_seen <1709136738 IPS\Db\Exception: Duplicate entry '0138fdaa72c8135e62b3487f5be7b11d-2970-' for key 'PRIMARY' (1062) #0 /home/fbaeefdf/live.ynwa.tv/system/Db/Db.php(1159): IPS\_Db->preparedQuery() #1 /home/fbaeefdf/live.ynwa.tv/applications/core/extensions/core/IpAddresses/Logins.php(33): IPS\_Db->update() #2 /home/fbaeefdf/live.ynwa.tv/system/Member/Member.php(6504): IPS\core\extensions\core\IpAddresses\_Logins->pruneIpAddresses() #3 /home/fbaeefdf/live.ynwa.tv/applications/core/tasks/pruneipaddresses.php(43): IPS\_Member::pruneAllLoggedIpAddresses() #4 /home/fbaeefdf/live.ynwa.tv/system/Task/Task.php(281): IPS\core\tasks\_pruneipaddresses->execute() #5 /home/fbaeefdf/live.ynwa.tv/applications/core/modules/admin/settings/advanced.php(751): IPS\_Task->run() #6 /home/fbaeefdf/live.ynwa.tv/system/Dispatcher/Controller.php(107): IPS\core\modules\admin\settings\_advanced->runTask() #7 /home/fbaeefdf/live.ynwa.tv/applications/core/modules/admin/settings/advanced.php(38): IPS\Dispatcher\_Controller->execute() #8 /home/fbaeefdf/live.ynwa.tv/system/Dispatcher/Dispatcher.php(153): IPS\core\modules\admin\settings\_advanced->execute() #9 /home/fbaeefdf/live.ynwa.tv/admin/index.php(13): IPS\_Dispatcher->run() #10 {main} I believe this is a knock-on effect of it NOT having been pruning the IP addresses correctly previously - the issue you'll have is that there could be multiple entries for a specific device_key and member_id, but with different IP addresses. Now that task has been fixed to do the pruning, when it tries to remove the IP address on those multiple entries, the PRIMARY key for each row will end up being the same as the key is made up of device_key, member_id, IP address (which is now blank) Sample content attached:core_members_known_ip_addresses.sql When the query in the task runs against that data, the error occurs: UPDATE `core_members_known_ip_addresses` `core_members_known_ip_addresses` SET `ip_address`='' WHERE ip_address != '' AND last_seen <1709135288
  2. If you are using Windows Defender then report it as a false positive back to Microsoft: https://www.microsoft.com/en-us/wdsi/filesubmission/
  3. I'll be disabling that functionality until this is resolved then...just been alerted to a data leak (title of a private topic being visible) which is going to cause a few problems now that it's been seen. Test of a topic in a private forum, viewable by a normal member...
  4. You pay for a new license, and then the renewals.
  5. Do you mean that you don't see these options?
  6. Go into the ACP and type delete into the search bar and click on the Permanently delete content result.
  7. Windows Snipping Tool Lightshot
  8. It's designed to allow them...they can "Post before registering" as your members group has permissions to do so... If someone in your members group can post in a location where guests cannot, then guests will be able to post.
  9. @LiamH - just checked your site as a guest; there are several forums open to allow guests to post new topics. I suggest you look at the permissions that the Guest group has for forums: You also have "Post before registering" enabled:
  10. Apply the patch...
  11. OK. But it's likely to be that has happened All registrations go through the spam prevention settings, and depending on your configuration then an admin may need to validate the account.
  12. Probably because your spam prevention settings dictate that a certain level requires admin involvement...
  13. Did you download and install it?
  14. GBoard is the default keyboard of the Google Android OS (it's on Pixel devices, it's on most OnePlus devices, plus others that don't massively deviate from the stock OS) 'Samsung Keyboard' is the native keyboard on the Samsung version of the Google Android OS, but can be overridden by the manual installation of GBoard from Google Play, just like SwiftKey is available for all Android devices.
  15. Scroll down to the footer...it's available by default.
  16. Apply the patch that was released to fix this:
  17. First mention of filtering there, so wasn't aware it was a requirement. If it is then crack on with a Pages DB - you then have to figure out how to keep that data up to date, and when to do it. Alternatively, look at IPS\Helpers\Table\Custom to allow you to create an table based on an array datasource instead of a DB table. With all this in mind, I'd now advise you to look into developing an application to do all this instead... You can design your own table to store the data You can create a module/controller that will display that data, and add filtering on there easily. You can create a task that runs on a schedule to retrieve/store/update the data. Not much more to add really - if I knew what this mysterious API was, and where it was getting the data from, and what the data looked like then I might even get bored and throw together a POC of it.
  18. The count, yes. The user's choice, no.
  19. Deleted - can't be bothered with potential further engagement
  20. Zero knowledge of what API it is that you are referring to wanting to use so can't look at the data structure, and have no idea about how you want it to be displayed but here is what I would be doing on the page/block... Check if the data exists in \IPS\Data\Store If not, retrieve the data via the API and then store the data in \IPS\Data\Store::i()->whateveryourkeyisgoingtobe, adding something to the data to provide a timestamp for it being added. Display the data however it is you wish it to be done. On subsequent loads, step 1 should also be checking if that timestamp should be considered 'out of date' - if it is, get the data again. I don't think you should think about storing the data in a Page DB - I can envision that become overly complex for what it appears that you are trying to do. And if the data store gets cleared, your code would just pull in the data again into the store anyway.
×
×
  • Create New...