-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathgroup.py
More file actions
executable file
·82 lines (64 loc) · 2.6 KB
/
group.py
File metadata and controls
executable file
·82 lines (64 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/usr/bin/env python
# coding: utf-8
from __future__ import unicode_literals, print_function
import django
django.setup() # noqa
from seaserv import seafile_api, ccnet_api
from pysearpc import SearpcError
from seahub.base.models import UserLastLogin
from seahub.api2.models import Token, TokenV2, DESKTOP_PLATFORMS
from seahub.utils.timeutils import datetime_to_isoformat_timestr
import argparse
def main():
cmd_parser = argparse.ArgumentParser(
description="manage groups"
)
cmd_parser.add_argument('group_id', type=int, help="group we are interested in")
cmd_parser.add_argument('-l', '--list', action="store_true",
dest="list_members",
help="show group members")
cmd_parser.add_argument('-a', '--add-member', nargs='*',
dest="add_members", help="add users to group")
cmd_parser.add_argument('-d', '--delete-member', nargs='*',
dest="delete_members", help="delete users from group")
cmd_parser.add_argument('-V', '--verbose', action="store_true",
dest="verbose",
help="Give detailed information, if possible")
args = cmd_parser.parse_args()
if args.list_members:
show_members(args.group_id)
elif args.add_members:
add_members(args.group_id, args.add_members)
elif args.delete_members:
delete_members(args.group_id, args.delete_members)
def show_members(group_id):
print("group %s (%d):" % (ccnet_api.get_group(group_id).group_name, group_id))
gusers = ccnet_api.get_group_members(group_id)
for guser in gusers:
print("%s" % (guser.user_name))
print("")
def add_members(group_id, members):
group = ccnet_api.get_group(group_id)
print("Adding users to group %s (%d):" % (group.group_name, group_id))
# WARNING: no check, if user exists!
for member in members:
try:
ccnet_api.group_add_member(group_id, group.creator_name, member)
except SearpcError:
print("Error adding %s" % member)
else:
print("Added %s" % member)
print("")
def delete_members(group_id, members):
group = ccnet_api.get_group(group_id)
print("Removing users from group %s (%d):" % (group.group_name, group_id))
for member in members:
try:
ccnet_api.group_remove_member(group_id, group.creator_name, member)
except SearpcError:
print("Error removing %s" % member)
else:
print("Removed %s" % member)
print("")
if __name__ == '__main__':
main()