MCPcopy Index your code
hub / github.com/ddserver/ddserver / post_user_add

Function post_user_add

ddserver/interface/pages/admin/users.py:83–131  ·  view source on GitHub ↗

Manually add a new user.

(user,
                  data,
                  db,
                  users,
                  emails,
                  messages)

Source from the content-addressed store, hash-verified

81 emails = 'ddserver.mail:EmailManager',
82 messages = 'ddserver.interface.message:MessageManager')
83def post_user_add(user,
84 data,
85 db,
86 users,
87 emails,
88 messages):
89 ''' Manually add a new user. '''
90
91 with db.cursor() as cur:
92 cur.execute('''
93 INSERT
94 INTO users
95 SET `username` = %(username)s,
96 `email` = %(email)s,
97 `admin` = 0,
98 `active` = 0,
99 `created` = CURRENT_TIMESTAMP
100 ''', {'username': data.username,
101 'email': data.email})
102
103 # Generate auth code
104 users.generate_authcode(data.username)
105
106 # Get user record
107 user = users[data.username]
108
109 # Send out activation mail
110 try:
111 emails.to_user('signup_activate.mail',
112 user = user)
113
114 except:
115 # Failed to send activation email.
116 # We reset the authcode in this case, so an admin can send
117 # a new one after fixing email issues
118 with db.cursor() as cur:
119 cur.execute('''
120 UPDATE users
121 SET `authcode` = %(authcode)s
122 WHERE `username` = %(username)s
123 ''', {'authcode': None,
124 'username': data.username})
125
126 messages.error('Failed to send activation email.')
127
128 else:
129 messages.success('Account created. The user will get an activation email.')
130
131 bottle.redirect('/admin/users/all')
132
133
134

Callers

nothing calls this directly

Calls 5

cursorMethod · 0.80
generate_authcodeMethod · 0.80
to_userMethod · 0.80
errorMethod · 0.80
successMethod · 0.80

Tested by

no test coverage detected