[xwiki-users] Remove SPAM registration
Hi, I'm looking to build a script that will delete all registered users from our XWiki that did not complete the registration by replying to the email and look like SPAM registration (firstname = lastname) The property of the object of XWiki.XWikiUsers -> active (of type boolean) is false Now this is my first attempt to HQL and i need some help #foreach($result in $xwiki.search(" select distinct doc.fullName, prop.value from XWikiDocument as doc, BaseObject as obj, StringProperty as prop, BooleanProperty as acti where obj.className='XWiki.XWikiUsers' and obj.name=doc.fullName and prop.id.id=obj.id and prop.name='first_name' and prop.value is not empty and prop.value in ( select prop.value from StringProperty as prop2 where prop2.id.id=obj.id and prop2.name='last_name' and prop2.value=prop.value) and acti.id.id=obj.id and acti.name='active' and acti.value=false ")) * $result.get(0) - $result.get(1) #end BooleanProperty is a wild guess of me looking at StringProperty as a example The query should look for users where first-name = last-name and active is false If possible I would like to check if the document creation date/time is more then 8 hours old Gerritjan
Hi Gerritjan, On 12/10/2010 10:23 PM, Gerritjan Koekkoek wrote:
Hi,
I'm looking to build a script that will delete all registered users from our XWiki that did not complete the registration by replying to the email and look like SPAM registration (firstname = lastname) The property of the object of XWiki.XWikiUsers -> active (of type boolean) is false
Now this is my first attempt to HQL and i need some help #foreach($result in $xwiki.search(" select distinct doc.fullName, prop.value from XWikiDocument as doc, BaseObject as obj, StringProperty as prop, BooleanProperty as acti where obj.className='XWiki.XWikiUsers' and obj.name=doc.fullName and prop.id.id=obj.id and prop.name='first_name' and prop.value is not empty and prop.value in ( select prop.value from StringProperty as prop2 where prop2.id.id=obj.id and prop2.name='last_name' and prop2.value=prop.value) and acti.id.id=obj.id and acti.name='active' and acti.value=false ")) * $result.get(0) - $result.get(1) #end
BooleanProperty is a wild guess of me looking at StringProperty as a example The query should look for users where first-name = last-name and active is false If possible I would like to check if the document creation date/time is more then 8 hours old
I guess you've seen http://extensions.xwiki.org/xwiki/bin/view/Extension/Delete+Spam+Users but you missed http://extensions.xwiki.org/xwiki/bin/view/Extension/List+Inactive+Users . Shouldn't be hard to combine them. Hope this helps, Marius
Gerritjan
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
Hi Thx Marius, The script works; select distinct doc.fullName, prop.value from XWikiDocument as doc, BaseObject as obj, StringProperty as prop, IntegerProperty as acti where obj.className='XWiki.XWikiUsers' and obj.name=doc.fullName and prop.id.id=obj.id and prop.name='first_name' and prop.value is not empty and prop.value in ( select prop.value from StringProperty as prop2 where prop2.id.id=obj.id and prop2.name='last_name' and prop2.value=prop.value) and acti.id.id=obj.id and acti.name='active' and acti.value <> 1 ")) This script will get all documents with object of class XWiki.XWikiUsers wher first-name = last name and Active is not true Typically these tend to be SPAM users A tip I got from Ludovic is to use it in a groovy script and put it in a scheduled task A improvement would be to add doc.created date to the query so users get enough time to validate the email sended. A improvement might also be to refine the class with some constraints scripting so spamming behaviour in user registration will get error like; this type of user information is used by Spammers also; please select other ... Anybody has done this ? Gerritjan Op 11 dec 2010, om 12:19 heeft Marius Dumitru Florea het volgende geschreven: Hi Gerritjan, On 12/10/2010 10:23 PM, Gerritjan Koekkoek wrote:
Hi,
I'm looking to build a script that will delete all registered users from our XWiki that did not complete the registration by replying to the email and look like SPAM registration (firstname = lastname) The property of the object of XWiki.XWikiUsers -> active (of type boolean) is false
Now this is my first attempt to HQL and i need some help #foreach($result in $xwiki.search(" select distinct doc.fullName, prop.value from XWikiDocument as doc, BaseObject as obj, StringProperty as prop, BooleanProperty as acti where obj.className='XWiki.XWikiUsers' and obj.name=doc.fullName and prop.id.id=obj.id and prop.name='first_name' and prop.value is not empty and prop.value in ( select prop.value from StringProperty as prop2 where prop2.id.id=obj.id and prop2.name='last_name' and prop2.value=prop.value) and acti.id.id=obj.id and acti.name='active' and acti.value=false ")) * $result.get(0) - $result.get(1) #end
BooleanProperty is a wild guess of me looking at StringProperty as a example The query should look for users where first-name = last-name and active is false If possible I would like to check if the document creation date/time is more then 8 hours old
I guess you've seen http://extensions.xwiki.org/xwiki/bin/view/Extension/Delete+Spam+Users but you missed http://extensions.xwiki.org/xwiki/bin/view/Extension/List+Inactive+Users . Shouldn't be hard to combine them. Hope this helps, Marius
Gerritjan
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
participants (2)
-
Gerritjan Koekkoek -
Marius Dumitru Florea