1
2
3 """
4
5 :author: Josh Moore <josh@glencoesoftware.com>
6
7 This script adds an OMERO user via blitz.
8
9 Copyright (c) 2007, Glencoe Software, Inc.
10
11 """
12
13 from optparse import OptionParser
14 from omero.rtypes import rstring
15
17 version="%prog 1.0"
18 usage = "usage: %prog [--sudo=... --sudopass=...] [optional fields] omename firstname [middlename] lastname"
19 parser = OptionParser(usage=usage, version=version)
20 parser.add_option("-c", "--config", dest="file",
21 help="read Ice configuration from FILE [default: %default]", metavar="FILE",
22 default="etc/ice.config")
23 parser.add_option("-e", "--email", dest="email",
24 help="user's EMAIL address", metavar="EMAIL")
25 parser.add_option("-i","--institute", dest="institute",
26 help="user's INSTITUTE's name", metavar="INSTITUTE")
27 parser.add_option("-g","--group", dest="group",
28 help="user's default GROUP [default: %default]", metavar="GROUP",
29 default="default")
30 parser.add_option("-p","--password", dest="password",
31 help="user's PASSWORD [default: %default]", metavar="PASSWORD",
32 default=None)
33 parser.add_option("-s","--sudo", dest="sudo",
34 help="Make call as different user", default=None)
35 parser.add_option("-r","--sudopass", dest="sudopass",
36 help="Password for sudo user")
37 (options, args) = parser.parse_args()
38
39 l = len(args)
40 if l == 3 :
41 on, fn, ln = args
42 mn = None
43 elif l == 4 :
44 on, fn, mn, ln = args
45 else:
46 parser.error("Must provide omename, firstname, and lastname")
47
48 import omero, Ice
49 from omero_model_ExperimenterI import ExperimenterI as Exp
50 a = ["--Ice.Config="+options.file]
51 c = omero.client(a)
52 p = c.ic.getProperties()
53 if options.sudo:
54 if not options.sudopass:
55 parser.error("Must provide --sudopass when using --sudo")
56 p.setProperty(omero.constants.USERNAME,options.sudo)
57 p.setProperty(omero.constants.PASSWORD,options.sudopass)
58 c.createSession()
59 e = Exp()
60 e.omeName = rstring(on)
61 e.firstName = rstring(fn)
62 e.lastName = rstring(ln)
63 e.middleName = rstring(mn)
64 e.email = rstring(options.email)
65 e.institution = rstring(options.institute)
66 admin = c.getSession().getAdminService()
67 id = admin.createUser(e,options.group)
68 print "Added user "+str(id)
69 admin.changeUserPassword(on,rstring(options.password))
70
71
72 if __name__ == "__main__":
73 main()
74