comparison scripts/spam-remover @ 4781:6e9b9743de89

Implementation for: http://issues.roundup-tracker.org/issue2550731 Add mechanism for the detectors to be able to tell the source of the data changes. Support for tx_Source property on database handle. Can be used by detectors to find out the source of a change in an auditor to block changes arriving by unauthenticated mechanisms (e.g. plain email where headers can be faked). The property db.tx_Source has the following values: * None - Default value set to None. May be valid if it's a script that is created by the user. Otherwise it's an error and indicates that some code path is not properly setting the tx_Source property. * "cli" - this string value is set when using roundup-admin and supplied scripts. * "web" - this string value is set when using any web based technique: html interface, xmlrpc .... * "email" - this string value is set when using an unauthenticated email based technique. * "email-sig-openpgp" - this string value is set when email with a valid pgp signature is used. (*NOTE* the testing for this mode is incomplete. If you have a pgp infrastructure you should test and verify that this is properly set.) This also includes some (possibly incomplete) tests cases for the modes above and an example of using ts_Source in the customization.txt document.
author John Rouillard <rouilj@ieee.org>
date Tue, 23 Apr 2013 23:06:09 -0400
parents f841a5868101
children c75defc1c2f0
comparison
equal deleted inserted replaced
4774:3adff0fb0207 4781:6e9b9743de89
91 if len(args): 91 if len(args):
92 print >> sys.stderr, "This command doesn't take arguments" 92 print >> sys.stderr, "This command doesn't take arguments"
93 cmd.show_help() 93 cmd.show_help()
94 tracker = instance.open(opt.instance) 94 tracker = instance.open(opt.instance)
95 db = tracker.open('admin') 95 db = tracker.open('admin')
96 db.tx_Source = "cli"
97
96 users = dict.fromkeys (db.user.lookup(u) for u in opt.users) 98 users = dict.fromkeys (db.user.lookup(u) for u in opt.users)
97 files_to_remove = {} 99 files_to_remove = {}
98 for fn in opt.filenames: 100 for fn in opt.filenames:
99 for fid in db.file.filter(None,dict(name=fn)): 101 for fid in db.file.filter(None,dict(name=fn)):
100 if db.file.get(fid,'name') == fn: 102 if db.file.get(fid,'name') == fn:

Roundup Issue Tracker: http://roundup-tracker.org/