public function __construct() { parent::__construct(); if ($this->isPostBack()) { // TODO: add correct validation for subdomain + s3 // TODO: add ip to ip pool $this->post->type->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->name->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->subdomain->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->access_key->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->secret_key->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->s3_bucket->addValidation(new ValidateInputNotNullOrEmpty()); if (!$this->hasErrors()) { $source = new SourceAmazonS3(); $source->name = $this->input('name'); $source->type = $this->input('type'); $source->setSubdomain($this->input('subdomain')); $source->require_ssl = $this->input('require_ssl'); $source->default_parameters = $this->input('default_parameters'); $source->error_image_url = $this->input('error_image_url'); $source->error_image_parameters = $this->input('error_image_parameters'); $source->missing_image_url = $this->input('missing_image_url'); $source->missing_image_parameters = $this->input('missing_image_parameters'); $source->organisation_id = $this->currentUser->getActiveOrganisation(); $source->setKey($this->input('access_key')); $source->setSecret($this->input('secret_key')); $source->setBucket($this->input('s3_bucket')); $source->setPrefix($this->input('prefix')); $this->save($source); } } }
public function __construct($sourceId) { parent::__construct(); $this->source = SourceAmazonS3::createType(Source::getById($sourceId)); if (!$this->source->hasRow()) { redirect(url('controlpanel.source')); } if ($this->isPostBack()) { // TODO: add correct validation for subdomain + s3 $this->post->type->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->name->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->subdomain->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->access_key->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->secret_key->addValidation(new ValidateInputNotNullOrEmpty()); $this->post->s3_bucket->addValidation(new ValidateInputNotNullOrEmpty()); if (!$this->hasErrors()) { $updateDns = false; // Update DNS if the subdomain has changed if ($this->source->subdomain != trim(strtolower($this->input('subdomain')))) { $updateDns = true; } $this->subdomain = $this->source->subdomain; $this->source->name = $this->input('name'); $this->source->type = $this->input('type'); $this->source->setSubdomain($this->input('subdomain')); $this->source->require_ssl = $this->input('require_ssl'); $this->source->default_parameters = $this->input('default_parameters'); $this->source->error_image_url = $this->input('error_image_url'); $this->source->error_image_parameters = $this->input('error_image_parameters'); $this->source->missing_image_url = $this->input('missing_image_url'); $this->source->missing_image_parameters = $this->input('missing_image_parameters'); $this->source->organisation_id = $this->currentUser->getActiveOrganisation(); $this->source->setKey($this->input('access_key')); $this->source->setSecret($this->input('secret_key')); $this->source->setBucket($this->input('s3_bucket')); $this->source->setPrefix($this->input('prefix')); $this->edit($updateDns); } } }