Based on the discussion from my thread:
I decided to try my hand at building a plugin that would help prevent suspended users from returning by blocking their browser fingerprint (see panopticlick.eff.org). My plan for this plugin involves:
save it to the database based on the user’s id if it doesn’t already exist (there should be a single object per each fingerprint tied to the user - we capture every unique fingerprint a user logs in with to prevent access to all device in the future)
on load, query by the calculated fingerprint to see if it is blocked; perform a similar action to an IP block if this is the case, or allow the user to access the site if they’re not blocked.
I’ve made a bit of progress below:
Now the tough part for me is the fact I’m completely new to Ember and Rails, so this is taking a bit of getting used to. I’ve based this on other plugins (such as the discourse-staff-notes plugin) to help get a good structure and to learn how this stuff all works.
plugin.rb, I believe I’ve set up a model interaction layer. The model is called by the
saveFingerprint function in
From what I’ve gathered, this is theoretically how I’d call the
saveFingerprint function from the initializer:
this is undefined (expected) and I’m not sure how this is declared.
I’d welcome any input/contributions from someone a bit more experienced as to how I should go about this and how