def register(self, ctx, username, email, password, screename, homepage): properties = dict(screename=screename or username, login=username, password=password, group_id=3, email=email, homepage=homepage ) def success(result, ctx, username): d = IUsersDatabase(IS(ctx)).findUser(username) d.addCallback(login, ctx) return d def login(avatar, ctx): # if using new guard # s = inevow.ISession(ctx) # creds = credentials.UsernamePassword(avatar['ulogin'], avatar['upassword']) # s.setComponent(creds, ignoreClass=True) s = inevow.ISession(ctx) res = index.Main() res.remember(avatar, IA) s.setResourceForPortal(res, s.guard.resource.portal, res.logout) # uri = iw.ILastURL(inevow.ISession(ctx), None) if uri: inevow.ISession(ctx).unsetComponent(iw.ILastURL) inevow.IRequest(ctx).setComponent(iformless.IRedirectAfterPost,uri or '') d = IUsersDatabase(IS(ctx)).addUser(properties) d.addCallback(success, ctx, username) return d
def success(result, ctx, username): d = IUsersDatabase(IS(ctx)).findUser(username) d.addCallback(login, ctx) return d