#-- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # Version 2, December 2004 # # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE # TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION # # 0. You just DO WHAT THE FUCK YOU WANT TO. #++ class ${ClassName} get '/user/login/?' do @error = 'You are already logged in.' if logged_in? erb :'user/login' end get '/user/logout/?' do if logged_in? current_user.logout! delete_login! @success = 'Logout successful.' else @error = 'You are not logged in.' end erb :'user/logout' end get '/user/signup/?' do @error = 'You are already logged in.' if logged_in? erb :'user/signup' end get '/user/lost_password/?' do @error = 'You are already logged in.' if logged_in? erb :'user/lost_password' end get '/user/password_recovery/?' do @error = 'You are already logged in.' if logged_in? erb :'user/password_recovery' end get '/user/change_level/?' do if not logged_in? @error = 'You need to log in.' elsif not current_user.staff? @error = 'Go home, this is not a place for you.' else @users = User.all end erb :'user/change_level' end post '/user/login/?' do if not fields? :username, :password @error = 'You have to complete all the required fields.' elsif logged_in? @error = 'You are already logged in.' else session = User.login params[:username], params[:password] if session set_login! session @success = 'Login successful.' else @error = 'Login failed.' end end erb :'user/login' end post '/user/signup/?' do if not fields? :username, :email, :password @error = 'You have to complete all the required fields.' elsif logged_in? @error = 'You are already logged in.' elsif User.exists? params[:username] @error = 'The username you have chosen is already taken.' else level = User.empty? ? User.founder : User.user user = User.signup params[:username], params[:email], params[:password], level if user.errors.any? @error = user.errors.first.first else @success = 'Sign up successful.' end end erb :'user/signup' end post '/user/lost_password/?' do if not fields? :username @error = 'You have to complete all the required fields.' elsif logged_in? @error = 'You are already logged in.' elsif User.exists? params[:username] passcode = User.lost_password params[:username] # send a mail or what you want @success = 'You should receive a mail with the instructions to recover your password.' else @error = 'The given username doesn\'t exists.' end erb :'user/lost_password' end post '/user/password_recovery/?' do if not fields? :username, :passcode, :password @error = 'You have to complete all the required fields.' elsif logged_in? @error = 'You are already logged in.' elsif User.password_recovery params[:username], params[:passcode], params[:password] @success = 'Password set successful.' else @error = 'Error setting the password.' end erb :'user/password_recovery' end post '/user/change_level/?' do if not logged_in? @error = 'You need to log in.' elsif not current_user.high_staff? @error = 'Go home, this is not a place for you.' elsif fields? :username, :go @user = User.get params[:username] @levels = User.levels elsif not fields? :username, :level @error = 'To change a user level, you need to send his username and level.' else user = User.get params[:username] level = case params[:level] when 'banned' then User.banned when 'founder' then User.founder when 'admin' then User.admin when 'smod' then User.smod when 'mod' then User.mod when 'user' then User.user else nil end if level.nil? @error = 'User level not recognized.' elsif not user @error = 'User not recognized.' elsif level == User.founder || user.founder? @error = 'Foundership is untouchable.' else user = User.change_level params[:username], level if user @success = 'User level set successful.' else @error = 'Error setting the user level.' end end end erb :'user/change_level' end end