Move to own folder and add webapp-admin
This commit is contained in:
81
manage_recipients/manage_recipients.py
Normal file
81
manage_recipients/manage_recipients.py
Normal file
@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python
|
||||
#encoding: utf-8
|
||||
|
||||
import kopano
|
||||
from MAPI.Util import *
|
||||
import json
|
||||
|
||||
|
||||
def opt_args():
|
||||
parser = kopano.parser('skpcfm')
|
||||
parser.add_option("--user", dest="user", action="store", help="Run script for user")
|
||||
parser.add_option("--list", dest="list", action="store_true", help="List recipients history")
|
||||
parser.add_option("--backup", dest="backup", action="store_true", help="Backup recipients history")
|
||||
parser.add_option("--restore", dest="restore", action="store_true", help="Restore recipients history")
|
||||
parser.add_option("--restore-file", dest="restorefile", action="store", help="Restore from an other file then username.json")
|
||||
parser.add_option("--remove", dest="remove", action="store", help="Remove recipients ")
|
||||
parser.add_option("--remove-all", dest="removeall", action="store_true", help="Remove complete recipients history")
|
||||
parser.add_option("--dry-run", dest="dryrun", action="store_true", help="Test script")
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
options, args = opt_args()
|
||||
|
||||
if not options.user:
|
||||
print 'Please use:\n %s --user <username>' % (sys.argv[0])
|
||||
sys.exit(0)
|
||||
|
||||
user = kopano.Server(options).user(options.user)
|
||||
webapp = user.store.prop(0X6773001F).value
|
||||
webapp = json.loads(webapp)
|
||||
|
||||
if options.backup:
|
||||
f = open('%s.json' % user.name, 'w')
|
||||
f.write(json.dumps(webapp, sort_keys=True,
|
||||
indent=4, separators=(',', ': ')))
|
||||
f.close()
|
||||
sys.exit(0)
|
||||
|
||||
if options.restore:
|
||||
if options.restorefile:
|
||||
filename = options.restorefile
|
||||
else:
|
||||
filename = '%s.json' % user.name
|
||||
with open(filename) as data_file:
|
||||
data = json.load(data_file)
|
||||
user.store.mapiobj.SetProps([SPropValue(0X6773001F, u'%s' % json.dumps(data))])
|
||||
user.store.mapiobj.SaveChanges(KEEP_OPEN_READWRITE)
|
||||
sys.exit(0)
|
||||
|
||||
if options.list:
|
||||
print json.dumps(webapp, sort_keys=True,
|
||||
indent=4, separators=(',', ': '))
|
||||
sys.exit(0)
|
||||
|
||||
if options.remove:
|
||||
newlist = json.loads('{"recipients":[]}')
|
||||
for rec in webapp['recipients']:
|
||||
if options.remove in rec['display_name'] or options.remove in rec['smtp_address'] \
|
||||
or options.remove in rec['email_address']:
|
||||
print 'removing contact %s [%s]' % (rec['display_name'], rec['smtp_address'])
|
||||
else:
|
||||
newlist['recipients'].append(rec)
|
||||
|
||||
if not options.dryrun:
|
||||
user.store.mapiobj.SetProps([SPropValue(0X6773001F, u'%s' % json.dumps(newlist))])
|
||||
user.store.mapiobj.SaveChanges(KEEP_OPEN_READWRITE)
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
if options.removeall:
|
||||
newlist = json.loads('{"recipients":[]}')
|
||||
if not options.dryrun:
|
||||
user.store.mapiobj.SetProps([SPropValue(0X6773001F, u'%s' % json.dumps(newlist))])
|
||||
user.store.mapiobj.SaveChanges(KEEP_OPEN_READWRITE)
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
34
manage_recipients/readme.md
Normal file
34
manage_recipients/readme.md
Normal file
@ -0,0 +1,34 @@
|
||||
manage_recipients.py
|
||||
====================
|
||||
Manage recipients in webapp
|
||||
|
||||
|
||||
#### Usage:
|
||||
|
||||
###### List recipients
|
||||
|
||||
```python
|
||||
python remove_recipients.py --user <user> --list
|
||||
```
|
||||
###### Remove recipient
|
||||
Remove options is searching in display_name, smtp_address or email_address.
|
||||
|
||||
```python
|
||||
python remove_recipients.py --user <user> --remove <recipient name>
|
||||
```
|
||||
|
||||
###### Clear history
|
||||
|
||||
```python
|
||||
python remove_recipients.py --user <user> --remove-all
|
||||
```
|
||||
|
||||
#### Example
|
||||
|
||||
Remove all recipients that have example.com in there display_name, smtp_address or email_address
|
||||
|
||||
```python
|
||||
python remove_recipients.py --user user --remove example.com
|
||||
```
|
||||
|
||||
|
Reference in New Issue
Block a user