def process_user_form(global_config, form, username, my_access_level, new_user=False): if new_user == True: username = form[user_username_label].value global_config['logger'].debug( 'Process User Profile For: %s', username ) session = DbSession.open_db_session(global_config['users_db_name'] + global_config['this_season']) email_address = form[user_emailaddress_label].value cellphone = form[user_cellphone_label].value carrier = form[user_carrier_label].value subgroup = form[user_subgroup_label].value user = UsersDataModel.getUser(session, username) if user: if new_user == True: raise Exception('User Already Exists!') # validate the password confirmation only if the user actually changed his # password if form[user_password_label].value != user.password: if form[user_password_label].value != form[user_password_confirm_label].value: raise Exception('Passwords Do NOT Match') # also make sure to pull username from the database, in case the user # provided the nickname username = user.username password = form[user_password_label].value display_name = form[user_display_name_label].value role = form[user_role_label].value contact_mode = form[user_contact_mode_label].value nickname = form[user_nickname_label].value access_level = int(form[user_access_level_label].value) if access_level == 0: if my_access_level >0: raise Exception('Only Supreme Admins (aka NOT you) can set access level to 0') taskgroups = form[user_taskgroups_label].value state = form[user_state_label].value UsersDataModel.addOrUpdateUser(session, username, email_address, cellphone, carrier, subgroup, password, display_name, role, contact_mode, nickname, access_level, state) UsersDataModel.updateUserTaskgroups(session, username, taskgroups) session.commit() session.remove() return '/users'
def process_userprofile_form(global_config, form, username): global_config['logger'].debug( 'Process User Profile For: %s', username ) session = DbSession.open_db_session(global_config['users_db_name'] + global_config['this_season']) email_address = form[user_emailaddress_label].value cellphone = form[user_cellphone_label].value carrier = form[user_carrier_label].value subgroup = form[user_subgroup_label].value # set default access level and rols, and override if the user is already in the system access_level = 5 role = 'Guest' user = UsersDataModel.getUser(session, username) if user: # validate the password confirmation only if the user actually changed his # password if form[user_password_label].value != user.password: if form[user_password_label].value != form[user_password_confirm_label].value: raise Exception('Passwords Do NOT Match') access_level = user.access_level role = user.role state = user.state password = form[user_password_label].value display_name = form[user_display_name_label].value contact_mode = form[user_contact_mode_label].value nickname = form[user_nickname_label].value UsersDataModel.addOrUpdateUser(session, username, email_address, cellphone, carrier, subgroup, password, display_name, role, contact_mode, nickname, access_level, state) session.commit() session.remove() return '/home'