1
2
3
4
5
6
7
8
9
10
11 import logging
12 log = logging.getLogger("zen.widgets.userviews")
13
14 from Products.Five.browser import BrowserView
15 from Products.Five.browser.pagetemplatefile import ZopeTwoPageTemplateFile
16 from Products.ZenUtils import Ext
17 from Products.CMFCore.utils import getToolByName
20 """There was a problem setting the admin password"""
21
23 """
24 Creates the initial user and sets the admin password.
25 """
26 __call__ = ZopeTwoPageTemplateFile('templates/createuser.pt')
27
28 @Ext.form_action
30 """
31 Handles form submission for setting the admin password and creating
32 an initial user.
33 """
34 response = Ext.FormResponse()
35
36 adminPassword = self.request.form.get("admin-password1")
37 userName = self.request.form.get("username")
38 userPassword = self.request.form.get("password1")
39 emailAddress = self.request.form.get("emailAddress")
40
41 zenUsers = getToolByName(self.context, 'ZenUsers')
42
43
44 try:
45 admin = zenUsers.getUserSettings('admin')
46 admin.manage_editUserSettings(password=adminPassword,
47 sndpassword=adminPassword,
48 roles=('ZenManager', 'Manager'),
49 oldpassword='zenoss')
50 except Exception:
51 log.exception("Failed to set admin password")
52 response.error('admin-password1',
53 "There was a problem setting the admin password.")
54
55 if not zenUsers.checkValidId(userName) == True:
56 response.error('username', 'That username already exists.')
57 else:
58 ret = zenUsers.manage_addUser(userName, userPassword,
59 ('Manager',), REQUEST=None, email=emailAddress)
60 if ret is None:
61 response.error('username',
62 'We were unable to add a user at this time.'
63 ' Check your installation.')
64
65 if not response.has_errors():
66
67 acl_users = self.context.getPhysicalRoot().acl_users
68 self.context.acl_users.resetCredentials(
69 self.request, self.request.response)
70
71
72 self.context.dmd._rq = True
73
74
75 response.redirect('qs-step2')
76 return response
77