/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2010, Tomasz Sowa * All rights reserved. * */ #include "content.h" #include "../core/request.h" #include "../core/data.h" #include "../core/db.h" bool Content::CheckAddUserVars(const std::string * login, const std::string * pass, const std::string * conf_pass) { if( !login || !pass || !conf_pass ) { request.status = WINIX_ERR_PERMISSION_DENIED; return false; } if( login->empty() ) { request.status = WINIX_ERR_LOGIN_EMPTY; return false; } if( *pass != *conf_pass ) { request.status = WINIX_ERR_PASSWORDS_DIFFERENT; return false; } if( pass->size() < 5 ) { request.status = WINIX_ERR_PASSWORD_TOO_SHORT; return false; } if( data.users.IsUser(*login) ) { request.status = WINIX_ERR_USER_EXISTS; return false; } return true; } void Content::PostFunAddUser() { User user; std::string * login = request.PostVar("login"); std::string * pass = request.PostVar("password"); std::string * conf_pass = request.PostVar("confirmpassword"); std::string * email = request.PostVar("email"); if( !CheckAddUserVars(login, pass, conf_pass) ) return; user.name = *login; if( email ) user.email = *email; request.status = db.AddUser(user, *pass); if( request.status == WINIX_ERR_OK ) { if( data.users.AddUser(user) ) { if( !request.session->puser ) LoginUser(user.id, false); log << log2 << "Content: added a new user: " << user.name << logend; } else { log << log1 << "Content: I can't add to data.users: " << user.name << " but the user was added to the db correctly" << logend; } if( request.is_item ) RedirectTo(request.item); else RedirectToLastDir(); } } void Content::FunAddUser() { }