/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2010, Tomasz Sowa * All rights reserved. * */ #include "adduser.h" namespace Fun { AddUser::AddUser() { fun.url = L"adduser"; } bool AddUser::CheckAddUserVars(const std::wstring & login, const std::wstring & pass, const std::wstring & conf_pass) { if( login.empty() ) { cur->request->status = WINIX_ERR_LOGIN_EMPTY; return false; } if( pass != conf_pass ) { cur->request->status = WINIX_ERR_PASSWORDS_DIFFERENT; return false; } if( pass.size() < config->password_min_size ) { cur->request->status = WINIX_ERR_PASSWORD_TOO_SHORT; return false; } if( system->users.IsUser(login) ) { cur->request->status = WINIX_ERR_USER_EXISTS; return false; } return true; } void AddUser::MakePost() { User user; const std::wstring & login = cur->request->PostVar(L"login"); const std::wstring & pass = cur->request->PostVar(L"password"); const std::wstring & conf_pass = cur->request->PostVar(L"confirmpassword"); if( !CheckAddUserVars(login, pass, conf_pass) ) return; user.name = login; user.email = cur->request->PostVar(L"email"); cur->request->status = db->AddUser(user, pass); if( cur->request->status == WINIX_ERR_OK ) { if( system->users.AddUser(user) ) { if( !cur->session->puser ) system->users.LoginUser(user.id, false); log << log2 << "Adduser: added a new user: " << user.name << logend; } else { log << log1 << "Adduser: I can't add to system->users: " << user.name << " but the user was added to the db correctly" << logend; } system->RedirectToLastItem(); } } } // namespace