def create_user(self): """ Add user to the database """ self.form_validation() user = User() user.handle = self.get_argument("handle", "") user.password = self.get_argument("pass1", "") user.bank_password = self.get_argument("bpass", "") user.name = self.get_argument("playername", "") user.email = self.get_argument("email", "") user.theme = options.default_theme team = self.get_team() self.dbsession.add(user) self.dbsession.add(team) self.dbsession.commit() # Avatar avatar_select = self.get_argument("user_avatar_select", "") if avatar_select and len(avatar_select) > 0: user._avatar = avatar_select elif hasattr(self.request, "files") and "avatar" in self.request.files: user.avatar = self.request.files["avatar"][0]["body"] else: user._avatar = identicon(user.handle, 6) team.members.append(user) if not options.teams: if avatar_select and len(avatar_select) > 0: team._avatar = avatar_select elif hasattr(self.request, "files") and "avatar" in self.request.files: team.avatar = self.request.files["avatar"][0]["body"] else: team._avatar = identicon(user.handle, 6) self.dbsession.add(user) self.dbsession.add(team) self.dbsession.commit() if ( options.require_email and options.validate_email and len(options.mail_host) > 0 ): self.send_validate_message(user) user.locked = True self.dbsession.add(user) self.dbsession.commit() else: self.event_manager.user_joined_team(user) # Chat if self.chatsession: self.chatsession.create_user(user, self.get_argument("pass1", "")) return user
def create_team(self): """ Create a new team """ if not self.config.teams: team = Team.by_name(self.get_argument("handle", "")) if team is None: team = Team() team.name = self.get_argument("handle", "") else: logging.info( "Team %s already exists - Player Mode: reset team." % team.name ) team.flags = [] team.hints = [] team.boxes = [] team.items = [] team.game_levels = [] team.purchased_source_code = [] team.motto = self.get_argument("motto", "") team._avatar = identicon(team.name, 6) if self.config.banking: team.money = self.config.starting_team_money else: team.money = 0 levels = GameLevel.all() for level in levels: if level.type == "none": team.game_levels.append(level) elif level.type != "hidden" and level.buyout == 0: team.game_levels.append(level) return team elif self.config.public_teams: if Team.by_name(self.get_argument("team_name", "")) is not None: raise ValidationError( "This team name is already registered. Use team code to join that team." ) team = Team() team.name = self.get_argument("team_name", "") team.motto = self.get_argument("motto", "") if len(filter_avatars("team")) == 0: team._avatar = identicon(team.name, 6) if not self.config.banking: team.money = 0 level_0 = GameLevel.by_number(0) if not level_0: level_0 = GameLevel.all()[0] team.game_levels.append(level_0) return team else: raise ValidationError("Public teams are not enabled")
def create_user(self): """ Add user to the database """ if User.by_handle(self.get_argument("handle", "")) is not None: raise ValidationError("This handle is already registered") if self.get_argument("pass1", "") != self.get_argument("pass2", ""): raise ValidationError("Passwords do not match") user = User() user.handle = self.get_argument("handle", "") user.password = self.get_argument("pass1", "") user.bank_password = self.get_argument("bpass", "") user.name = self.get_argument("playername", "") user.email = self.get_argument("email", "") team = self.get_team() self.dbsession.add(user) self.dbsession.add(team) self.dbsession.commit() # Avatar avatar_select = self.get_argument("user_avatar_select", "") if avatar_select and len(avatar_select) > 0: user._avatar = avatar_select elif hasattr(self.request, "files") and "avatar" in self.request.files: user.avatar = self.request.files["avatar"][0]["body"] else: user._avatar = identicon(user.handle, 6) team.members.append(user) if not options.teams: if avatar_select and len(avatar_select) > 0: team.avatar = avatar_select elif hasattr(self.request, "files") and "avatar" in self.request.files: team.avatar = self.request.files["avatar"][0]["body"] else: team._avatar = identicon(user.handle, 6) self.dbsession.add(user) self.dbsession.add(team) self.dbsession.commit() self.event_manager.user_joined_team(user) # Chat if self.chatsession: self.chatsession.create_user(user, self.get_argument("pass1", "")) return user
def create_team(self, user): team = Team() team.name = user.handle team.motto = "" team._avatar = identicon(team.name, 6) if self.config.banking: team.money = self.config.starting_team_money else: team.money = 0 level_0 = GameLevel.by_number(0) if not level_0: level_0 = GameLevel.all()[0] team.game_levels.append(level_0) self.dbsession.add(team) return team