Beispiel #1
0
 public function xSaveSettingsAction()
 {
     $this->request->defineParams(array('dnsZoneId' => array('type' => 'int'), 'axfrAllowedHosts' => array('type' => 'string'), 'allowedAccounts' => array('type' => 'string'), 'allowManageSystemRecords' => array('type' => 'int')));
     $DBDNSZone = DBDNSZone::loadById($this->getParam('dnsZoneId'));
     $this->user->getPermissions()->validate($DBDNSZone);
     $Validator = new Validator();
     if ($this->getParam('axfrAllowedHosts') != '') {
         $hosts = explode(";", $this->getParam('axfrAllowedHosts'));
         foreach ($hosts as $host) {
             $host = trim($host);
             if (!$Validator->IsIPAddress($host)) {
                 $errors['axfrAllowedHosts'] = sprintf(_("'%s' is not valid IP address"), $host);
             }
         }
     }
     if ($this->getParam('allowedAccounts')) {
         $accounts = explode(";", $this->getParam('allowedAccounts'));
         foreach ($accounts as $account) {
             if (!$Validator->IsEmail($account)) {
                 $errors['allowedAccounts'] = sprintf(_("'%s' is not valid Email address"), $account);
             }
         }
     }
     if (count($errors) == 0) {
         if ($this->getParam('axfrAllowedHosts') != $DBDNSZone->axfrAllowedHosts) {
             $DBDNSZone->axfrAllowedHosts = $this->getParam('axfrAllowedHosts');
             $DBDNSZone->isZoneConfigModified = 1;
         }
         $DBDNSZone->allowManageSystemRecords = $this->getParam('allowManageSystemRecords');
         $DBDNSZone->allowedAccounts = $this->getParam('allowedAccounts');
         $DBDNSZone->save();
         $this->response->success('Changes have been saved. They will become active in few minutes.');
     } else {
         $this->response->failure();
         $this->response->data(array('errors' => $errors));
     }
 }
Beispiel #2
0
 public function xSaveAction()
 {
     $validator = new Validator();
     try {
         if (!$validator->IsDomain($this->getParam('domainName'))) {
             $err['domainName'] = _("Domain name is incorrect");
         }
         if (!$this->getParam('farmId')) {
             $err['farmId'] = _("Farm required");
         } else {
             $dbFarm = DBFarm::LoadByID($this->getParam('farmId'));
             $this->user->getPermissions()->validate($dbFarm);
         }
         if (!$this->getParam('farmRoleId')) {
             $err['farmRoleId'] = _("Role required");
         } else {
             $dbFarmRole = DBFarmRole::LoadByID($this->getParam('farmRoleId'));
             if ($dbFarmRole->FarmID != $dbFarm->ID) {
                 $err['farmRoleId'] = _("Role not found");
             }
         }
         if (!$validator->IsEmail($this->getParam('serverAdmin'))) {
             $err['serverAdmin'] = _("Server admin's email is incorrect or empty ");
         }
         if (!$this->getParam('documentRoot')) {
             $err['documentRoot'] = _("Document root required");
         }
         if (!$this->getParam('logsDir')) {
             $err['logsDir'] = _("Logs directory required");
         }
         if ($this->db->GetOne("SELECT id FROM apache_vhosts WHERE env_id=? AND `name` = ? AND id != ?", array($this->getEnvironmentId(), $this->getParam('domainName'), $this->getParam('vhostId')))) {
             $err['domainName'] = "'{$this->getParam('domainName')}' virtualhost already exists";
         }
     } catch (Exception $e) {
         $err[] = $e->getMessage();
     }
     if (count($err) == 0) {
         $vHost = Scalr_Service_Apache_Vhost::init();
         if ($this->getParam('vhostId')) {
             $vHost->loadById($this->getParam('vhostId'));
             $this->user->getPermissions()->validate($vHost);
         } else {
             $vHost->envId = $this->getEnvironmentId();
             $vHost->clientId = $this->user->getAccountId();
         }
         $vHost->domainName = $this->getParam('domainName');
         $vHost->isSslEnabled = $this->getParam('isSslEnabled') == 'on' ? true : false;
         $vHost->farmId = $this->getParam('farmId');
         $vHost->farmRoleId = $this->getParam('farmRoleId');
         $vHost->httpdConf = $this->getParam("nonSslTemplate");
         $vHost->templateOptions = serialize(array("document_root" => trim($this->getParam('documentRoot')), "logs_dir" => trim($this->getParam('logsDir')), "server_admin" => trim($this->getParam('serverAdmin')), "server_alias" => trim($this->getParam('serverAlias'))));
         //SSL stuff
         if ($vHost->isSslEnabled) {
             if ($_FILES['certificate']['tmp_name']) {
                 $vHost->sslCert = file_get_contents($_FILES['certificate']['tmp_name']);
             }
             if ($_FILES['privateKey']['tmp_name']) {
                 $vHost->sslKey = file_get_contents($_FILES['privateKey']['tmp_name']);
             }
             if ($_FILES['certificateChain']['tmp_name']) {
                 $vHost->caCert = file_get_contents($_FILES['certificateChain']['tmp_name']);
             }
             $vHost->httpdConfSsl = $this->getParam("sslTemplate");
         } else {
             $vHost->sslCert = "";
             $vHost->sslKey = "";
             $vHost->caCert = "";
             $vHost->httpdConfSsl = "";
         }
         $vHost->save();
         $servers = $dbFarm->GetServersByFilter(array('status' => array(SERVER_STATUS::INIT, SERVER_STATUS::RUNNING)));
         foreach ($servers as $dBServer) {
             if ($dBServer->GetFarmRoleObject()->GetRoleObject()->hasBehavior(ROLE_BEHAVIORS::NGINX) || $dBServer->GetFarmRoleObject()->GetRoleObject()->hasBehavior(ROLE_BEHAVIORS::APACHE) && $dBServer->farmRoleId == $vHost->farmRoleId) {
                 $dBServer->SendMessage(new Scalr_Messaging_Msg_VhostReconfigure());
             }
         }
         $this->response->success(_('Virtualhost successfully saved'));
     } else {
         $this->response->failure();
         $this->response->data(array('errors' => $err));
     }
 }
Beispiel #3
0
 function testValidation()
 {
     $Validator = new Validator();
     // IsEmpty
     $empty_var = 'sdfsdfsdfs';
     $empty_var2 = 'sdfsdfs';
     $result = $Validator->IsNotEmpty($empty_var) && $Validator->IsNotEmpty($empty_var2);
     $this->assertTrue($result, "Validator->IsEmpty returned true on non empty var");
     $empty_var = '';
     $empty_var2 = 0;
     $result = $Validator->IsNotEmpty($empty_var) && $Validator->IsNotEmpty($empty_var2);
     $this->assertFalse($result, "Validator->IsEmpty returned false on empty var");
     // IsNumeric
     $number1 = 0;
     $number2 = -1;
     $number3 = 1.2;
     $result = $Validator->IsNumeric($number1) && $Validator->IsNumeric($number2) && $Validator->IsNumeric($number3);
     $this->assertTrue($result, "Validator->IsNumeric returned true on number var");
     $number1 = "1,2";
     $number2 = "abc";
     $result = $Validator->IsNumeric($number1) && $Validator->IsNumeric($number2);
     $this->assertFalse($result, "Validator->IsNumeric returned false on non-number var");
     // IsAlpha
     $alpha = "Alpha";
     $result = $Validator->IsAlpha($alpha);
     $this->assertTrue($result, "Validator->IsAlpha returned true");
     $alpha = "22323";
     $result = $Validator->IsAlpha($alpha);
     $this->assertFalse($result, "Validator->IsAlpha returned false");
     // IsAlphaNumeric
     $alpha = "Alpha12";
     $result = $Validator->IsAlphaNumeric($alpha);
     $this->assertTrue($result, "Validator->IsAlphaNumeric returned true");
     $alpha = "22323 sdfsd  fsdf s";
     $result = $Validator->IsAlphaNumeric($alpha);
     $this->assertFalse($result, "Validator->IsAlphaNumeric returned false");
     // IsEmail
     $email = "*****@*****.**";
     $result = $Validator->IsEmail($email);
     $this->assertTrue($result, "Validator->IsEmail returned true");
     $email = "asdasdsdfs";
     $result = $Validator->IsEmail($email);
     $this->assertFalse($result, "Validator->IsEmail returned false");
     // IsURL
     $url = "http://webta.net";
     $url2 = "webta.net";
     $url3 = "www.webta.net";
     $url4 = "http://www.webta.net";
     $result = $Validator->IsURL($url) && $Validator->IsURL($url2) && $Validator->IsURL($url3) && $Validator->IsURL($url4);
     $this->assertTrue($result, "Validator->IsURL returned true");
     $url = "asdasdsdfs";
     $url2 = "asdasdsdfs-222.1-";
     $url3 = "-webta.com";
     $result = $Validator->IsURL($url) && $Validator->IsURL($url2) && $Validator->IsURL($url3);
     $this->assertFalse($result, "Validator->IsURL returned false");
     // IsIPAddress
     $ip = "10.100.10.10";
     $result = $Validator->IsIPAddress($ip);
     $this->assertTrue($result, "Validator->IsIPAddress returned true");
     $ip = "288.1221.11.11";
     $result = $Validator->IsIPAddress($ip);
     $this->assertFalse($result, "Validator->IsIPAddress returned false");
     // IsExternalIPAddress
     $result = $Validator->IsExternalIPAddress("111.120.11.1");
     $this->assertTrue($result, "Validator->IsExternalIPAddress returned true for '111.120.11.1'");
     $result = $Validator->IsExternalIPAddress("192.168.1.1");
     $this->assertFalse($result, "Validator->IsExternalIPAddress returned false for '192.168.1.1'");
     $result = $Validator->IsExternalIPAddress("172.16.10.100");
     $this->assertFalse($result, "Validator->IsExternalIPAddress returned false for '172.16.10.100'");
     $result = $Validator->IsExternalIPAddress("172.32.10.100");
     $this->assertTrue($result, "Validator->IsExternalIPAddress returned true for '172.32.10.100'");
     // IsDomain
     $result = $Validator->IsDomain("webta.net");
     $this->assertTrue($result, "Validator->IsDomain returned true for webta.net");
     $result = $Validator->IsDomain("c1.webta.net");
     $this->assertTrue($result, "Validator->IsDomain returned true for c1.webta.net");
     $result = $Validator->IsDomain("webta@net") || $Validator->IsDomain("webtanet");
     $this->assertFalse($result, "Validator->IsDomain returned false for weird zones");
     // MatchesPattern
     $string = "abs_111";
     $pattern = "/^[A-Za-z]{3}_[0-9]{3}\$/";
     $result = $Validator->MatchesPattern($string, $pattern);
     $this->assertTrue($result, "Validator->MatchesPattern returned true");
     $pattern = "/^[A-Za-z]_[0-9]\$/";
     $result = $Validator->MatchesPattern($string, $pattern);
     $this->assertFalse($result, "Validator->MatchesPattern returned false");
     // AreEqual
     $s1 = "abc123";
     $s2 = "abc123";
     $result = $Validator->AreEqual($s1, $s2);
     $this->assertTrue($result, "Validator->AreEqual returned true");
     $s2 = "sdfsdfasd";
     $result = $Validator->AreEqual($s1, $s2);
     $this->assertFalse($result, "Validator->AreEqual returned false");
 }
 public function _IsEmail($value)
 {
     return StrLen($value) == 0 || Validator::IsEmail($value);
 }
Beispiel #5
0
 /**
  * Return true if $var is valid e-mail. RFC-compliant. Also checks in DNS.
  *
  * @param mixed $var
  * @param string $name
  * @param string $error
  * @return bool
  * @link http://www.linuxjournal.com/article/9585
  */
 function IsEmailPlusDNS($var, $name = null, $error = null)
 {
     Validator::IsEmail($var, $name, $error, true);
 }
Beispiel #6
0
<?

	require_once('src/prepend.inc.php');

	if ($_POST)
	{
		// get user information from database
		$user = $db->GetRow("SELECT * 
								FROM users 
							WHERE id=? AND password = ?", array($_SESSION['userid'], $Crypto->Hash($post_pass)));
							
		$Validator = new Validator();
		if (!$Validator->IsEmail($post_email))
			$err[] = sprintf(_("'%s' is not a valid email address"), $post_email);
		
		if (!$user)
			$err[] = _("Incorrect password");
	
		if ($post_email == $user["email"])
			$err[] = _("New email address cannot be the same as the old one");
			
		// if user password is correct update info
		if (count($err) == 0)
		{
			$db->Execute("UPDATE users SET nemail=? WHERE id=?", array($post_email, $_SESSION['userid']));
			
			$code = base64_encode($Crypto->Hash("{$user['id']}::{$user['password']}::{$post_email}"));
			
			$link = CONFIG::$SITE_URL."/client/login.php?id={$user['id']}&code={$code}&action=confirmeml";
				
			$args = array("link" => $link, "client" => $user);
Beispiel #7
0
<?
	
	if ($_SESSION['wizard']['check_user']['reg_type'] == 'newclient')
	{
		$_POST = array_map("trim", $_POST);
		
		// Validate new client fields
		$Validator = new Validator();
							
		if (!$Validator->IsEmail($_POST["email"]))	
			$err[] = _("Invalid E-mail address");
			
	    //
	    if (!$Validator->IsNotEmpty($_POST["login"]))
            $err[] = _("Login required");
	      
	    if (!$Validator->IsNotEmpty($_POST["name"]))
	        $err[] = _("Name required");
	        
	    if (!$Validator->IsNotEmpty($_POST["address"]))
	        $err[] = _("Address 1 required");
	        
	    if (!$Validator->IsNotEmpty($_POST["city"]))
	        $err[] = _("Town/City required");
	        
	    if (!$Validator->IsNotEmpty($_POST["state"]))
	        $err[] = _("State required");
	        
	    if (!$Validator->IsNotEmpty($_POST["country"]))
	        $err[] = _("Country required");
	        
Beispiel #8
0
 public function xCreateAccountAction()
 {
     global $Mailer;
     //FIXME:
     if (!class_exists("Scalr_Billing")) {
         exit;
     }
     $this->request->defineParams(array('name', 'org', 'email', 'password', 'agreeTerms', 'newBilling', 'country', 'phone', 'lastname', 'firstname', 'v', 'numServers'));
     $Validator = new Validator();
     if ($this->getParam('v') == 2) {
         if (!$this->getParam('firstname')) {
             $err['firstname'] = _("First name required");
         }
         if (!$this->getParam('lastname')) {
             $err['lastname'] = _("Last name required");
         }
         if (!$this->getParam('org')) {
             $err['org'] = _("Organization required");
         }
         $name = $this->getParam('firstname') . " " . $this->getParam('lastname');
     } else {
         if (!$this->getParam('name')) {
             $err['name'] = _("Account name required");
         }
         $name = $this->getParam("name");
     }
     $password = $this->getParam('password');
     if (!$password) {
         $password = $this->getCrypto()->sault(10);
     }
     if (!$Validator->IsEmail($this->getParam('email'))) {
         $err['email'] = _("Invalid E-mail address");
     }
     if (strlen($password) < 6) {
         $err['password'] = _("Password should be longer than 6 chars");
     }
     // Check email
     $DBEmailCheck = $this->db->GetOne("SELECT COUNT(*) FROM account_users WHERE email=?", array($this->getParam('email')));
     if ($DBEmailCheck > 0) {
         $err['email'] = _("E-mail already exists in database");
     }
     if (!$this->getParam('agreeTerms')) {
         $err['agreeTerms'] = _("You need to agree with terms and conditions");
     }
     if (count($err) == 0) {
         $account = Scalr_Account::init();
         $account->name = $this->getParam("org") ? $this->getParam("org") : $name;
         $account->status = Scalr_Account::STATUS_ACTIVE;
         $account->save();
         $account->createEnvironment("default", true);
         $user = $account->createUser($this->getParam('email'), $password, Scalr_Account_User::TYPE_ACCOUNT_OWNER);
         $user->fullname = $name;
         $user->save();
         if ($this->getParam('v') == 2) {
             $user->setSetting('website.phone', $this->getParam('phone'));
             $user->setSetting('website.country', $this->getParam('country'));
             $user->setSetting('website.num_servers', $this->getParam('numServers'));
         }
         /**
          * Limits
          */
         try {
             $billing = new Scalr_Billing();
             $billing->loadByAccount($account);
             $billing->createSubscription(Scalr_Billing::PACKAGE_SEED, "", "", "", "");
             /*******************/
         } catch (Exception $e) {
             $account->delete();
             header("Location: https://scalr.net/order/?error={$e->getMessage()}");
             exit;
         }
         if ($_COOKIE['__utmz']) {
             $gaParser = new Scalr_Service_GoogleAnalytics_Parser();
             $clientSettings[CLIENT_SETTINGS::GA_CAMPAIGN_CONTENT] = $gaParser->campaignContent;
             $clientSettings[CLIENT_SETTINGS::GA_CAMPAIGN_MEDIUM] = $gaParser->campaignMedium;
             $clientSettings[CLIENT_SETTINGS::GA_CAMPAIGN_NAME] = $gaParser->campaignName;
             $clientSettings[CLIENT_SETTINGS::GA_CAMPAIGN_SOURCE] = $gaParser->campaignSource;
             $clientSettings[CLIENT_SETTINGS::GA_CAMPAIGN_TERM] = $gaParser->campaignTerm;
             $clientSettings[CLIENT_SETTINGS::GA_FIRST_VISIT] = $gaParser->firstVisit;
             $clientSettings[CLIENT_SETTINGS::GA_PREVIOUS_VISIT] = $gaParser->previousVisit;
             $clientSettings[CLIENT_SETTINGS::GA_TIMES_VISITED] = $gaParser->timesVisited;
         }
         $clientSettings[CLIENT_SETTINGS::RSS_LOGIN] = $this->getParam('email');
         $clientSettings[CLIENT_SETTINGS::RSS_PASSWORD] = $this->getCrypto()->sault(10);
         foreach ($clientSettings as $k => $v) {
             $account->setSetting($k, $v);
         }
         try {
             $this->db->Execute("INSERT INTO default_records SELECT null, '{$account->id}', rtype, ttl, rpriority, rvalue, rkey FROM default_records WHERE clientid='0'");
         } catch (Exception $e) {
         }
         $clientinfo = array('fullname' => $name, 'firstname' => $this->getParam('firstname') ? $this->getParam('firstname') : $name, 'email' => $this->getParam('email'), 'password' => $password);
         $mailer = new PHPMailer();
         $mailer->Subject = 'Welcome to the Scalr revolution!';
         $mailer->From = '*****@*****.**';
         $mailer->FromName = 'Scalr';
         $mailer->AddAddress($this->getParam('email'));
         $mailer->IsHTML(true);
         $mailer->Body = @file_get_contents(dirname(__FILE__) . '/../../../../templates/en_US/emails/welcome.html');
         $mailer->Body = str_replace(array('{{FirstName}}', '{{Password}}'), array($clientinfo['firstname'], $clientinfo['password']), $mailer->Body);
         $mailer->Send();
         /*
         // Send welcome E-mail
         $Mailer->ClearAddresses();
         $Mailer->From 		='*****@*****.**';
         $res = $Mailer->Send("emails/welcome.eml",
         	array("client" => $clientinfo, "site_url" => "http://{$_SERVER['HTTP_HOST']}"),
         	$this->getParam('email'),
         	''
         );
         */
         $user->getAccount()->setSetting(Scalr_Account::SETTING_IS_TRIAL, 1);
         //AutoLogin
         $user->updateLastLogin();
         Scalr_Session::create($user->getId());
         Scalr_Session::keepSession();
         header("Location: http://scalr.net/thanks.html");
     } else {
         $errors = array_values($err);
         $error = $errors[0];
         header("Location: https://scalr.net/order/?error={$error}");
         //$this->response->failure();
         //$this->response->data(array('errors' => $err));
     }
     exit;
 }