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); } } }