VYPR
Moderate severityNVD Advisory· Published Jan 2, 2018· Updated Sep 17, 2024

CVE-2017-1000442

CVE-2017-1000442

Description

Passbolt API versions 1.6.4 and older are vulnerable to a stored XSS in the resource URL field, allowing arbitrary JavaScript execution.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

Passbolt API versions 1.6.4 and older are vulnerable to a stored XSS in the resource URL field, allowing arbitrary JavaScript execution.

Vulnerability

Passbolt API versions 1.6.4 and older contain a stored cross-site scripting vulnerability in the URL field of resources on the password workspace. User-supplied URLs are not properly sanitized, allowing injection of arbitrary HTML and JavaScript. [1][2][3]

Exploitation

An authenticated attacker can create or edit a resource with a malicious URL containing JavaScript, such as javascript:alert('xss'). When another user views the password workspace grid, the script executes in the context of the victim's session. [2]

Impact

Successful exploitation allows an attacker to execute arbitrary JavaScript in the context of the victim's browser, potentially leading to session hijacking, credential theft, or other malicious actions. [2][3]

Mitigation

The fix was implemented in commit f5eb934 and included in Passbolt API version 1.6.5 released on September 14, 2017. Users should upgrade to version 1.6.5 or later. No workaround is available for older versions. [1][2][3]

AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
passbolt/passbolt_apiPackagist
< 1.6.51.6.5

Affected products

1

Patches

1
f5eb93485a90

PASSBOLT-2402 Fix XSS on resource url in password workspace grid and sidebar

43 files changed · +144 14
  • app/Console/Command/Task/ModelTask.php+14 0 modified
    @@ -82,4 +82,18 @@ public function insertItem($item, $Model) {
     			die;
     		}
     	}
    +
    +	/**
    +	 * Insert an item using the model save functionality
    +	 *
    +	 * @param array $item array to insert
    +	 * @param Model $Model object to insert the data with
    +	 * @return void
    +	 */
    +	public function tryInsertItem($item, $Model) {
    +		$Model->create();
    +		if (!$Model->save($item, $this->validateOnSave)) {
    +			throw new ValidationException('Validation failed');
    +		}
    +	}
     }
    
  • app/Plugin/DataTests/Console/Command/Task/ResourceTask.php+60 0 modified
    @@ -30,14 +30,32 @@ public function execute() {
     		$data = $this->getData();
     
     		$i = 0;
    +		// Insert regular data
     		foreach ($data as $item) {
     			// the 'owner' entry for permission.created_by will matching the resource.created_by
     			$user = $User->find('first', ['conditions' => ['User.id' => $item['Resource']['created_by']]]);
     			User::setActive($user);
     			$this->insertItem($item, $Model);
     			$i++;
     		}
    +
    +		// insert security data
    +		$data = $this->getSecurityData();
    +		foreach ($data as $item) {
    +			// the 'owner' entry for permission.created_by will matching the resource.created_by
    +			$user = $User->find('first', ['conditions' => ['User.id' => $item['Resource']['created_by']]]);
    +			User::setActive($user);
    +			try {
    +				$this->tryInsertItem($item, $Model);
    +			} catch(Exception $e) {
    +				$i--;
    +				$this->out('Security test data not inserted in ' . $Model->name . ' ' . $item['Resource']['username'] . ' ' . $item['Resource']['name']);
    +			}
    +			$i++;
    +		}
    +
     		$this->out('Data for model ' . $this->model . ' inserted (' . $i . ')');
    +
     	}
     
     /**
    @@ -278,6 +296,7 @@ protected function getData() {
     			'created_by' => Common::uuid('user.id.edith'),
     			'modified_by' => Common::uuid('user.id.edith')
     		));
    +
     //		$r[] = array('Resource' => array(
     //			'id' => Common::uuid('resource.id.'),
     //			'name' => '',
    @@ -291,4 +310,45 @@ protected function getData() {
     //		));
     		return $r;
     	}
    +
    +
    +	public function getSecurityData() {
    +		// URL XSS Tests
    +		$r = [];
    +		$xss = [
    +			'xss JavaScript directive quote semicolon' => "javascript:alert('xss1');",
    +			'xss JavaScript directive quote no semicolon' => "javascript:alert('xss2')",
    +			'xss JavaScript directive double quote' => 'javascript:alert("XSS3")',
    +			'xss JavaScript directive case insensitive' => "JaVaScRiPt:alert('XSS4')",
    +			'xss Javascript directive HTML entities' => 'javascript:alert(&quot;XSS5&quot;)',
    +			'xss Javascript directive fromCharCode' => 'javascript:alert(String.fromCharCode(88,83,83))',
    +			'xss Decimal HTML character references' => '&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;',
    +			'xss Decimal HTML character references without trailing semicolons' => '&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041',
    +			'xss Hexadecimal HTML char references without trailing semicolons' => '&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29',
    +			'xss Embedded tab' => "jav        ascript:alert('XSS10');",
    +			'xss Embedded Encoded tab' => "jav&#x09;ascript:alert('XSS11');",
    +			'xss Embedded carriage return to break up XSS' => "jav&#x0D;ascript:alert('XSS12');",
    +			'xss Embedded newline to break up XSS' => "jav&#x0A;ascript:alert('XSS13');",
    +			'xss space and meta chars before the javascript' => "&#14;  javascript:alert('XSS14');",
    +			'xss Extraneous >' => '"' . "><script>alert('xss15')</script>",
    +			'xss Extraneous closing double quote' => '">' . "onclick=alert('xxs16')",
    +			'xss & JavaScript includes' =>	"&{alert('XSS17')}",
    +			'xss null breaks up javascript directive' => 'java\0script:alert("XSS18")',
    +		];
    +		$i = 1;
    +		foreach ($xss as $name => $x) {
    +			$r[] = ['Resource' => [
    +				'id' => Common::uuid($name),
    +				'name' => substr($name,0,64),
    +				'username' => 'test' . $i++,
    +				'expiry_date' => null,
    +				'uri' => $x,
    +				'description' => 'xss test',
    +				'deleted' => 0,
    +				'created_by' => Common::uuid('user.id.ada'),
    +				'modified_by' => Common::uuid('user.id.ada')
    +			]];
    +		}
    +		return $r;
    +	}
     }
    
  • app/tmp/cache/models/empty+0 0 removed
  • app/tmp/cache/persistent/empty+0 0 removed
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_authentication_tokens+2 0 added
    @@ -0,0 +1,2 @@
    +1504608548
    +a:8:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:5:"token";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:6:"active";a:5:{s:4:"type";s:7:"integer";s:4:"null";b:0;s:7:"default";s:1:"1";s:6:"length";i:1;s:8:"unsigned";b:0;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_controller_logs+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:13:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"role_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:5:"level";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:8;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:6:"method";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:6;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:10:"controller";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:6:"action";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:13:"user_agent_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:2:"ip";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:45;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:12:"request_data";a:6:{s:4:"type";s:4:"text";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"message";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:5:"scope";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_favorites+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:5:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:10:"foreign_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:13:"foreign_model";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_file_storage+2 0 added
    @@ -0,0 +1,2 @@
    +1504593413
    +a:13:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:11:"foreign_key";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:5:"model";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:128;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:8:"filename";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:8:"filesize";a:5:{s:4:"type";s:7:"integer";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:16;s:8:"unsigned";b:0;}s:9:"mime_type";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:128;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:9:"extension";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:5;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:4:"hash";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:4:"path";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"charset";s:7:"utf8mb4";}s:7:"adapter";a:7:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:32;s:7:"collate";s:18:"utf8mb4_general_ci";s:7:"comment";s:31:"Gaufrette Storage Adapter Class";s:7:"charset";s:7:"utf8mb4";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_gpgkeys+2 0 added
    @@ -0,0 +1,2 @@
    +1504608584
    +a:15:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:3:"key";a:6:{s:4:"type";s:4:"text";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"bits";a:5:{s:4:"type";s:7:"integer";s:4:"null";b:1;s:7:"default";s:4:"2048";s:6:"length";i:11;s:8:"unsigned";b:0;}s:3:"uid";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:128;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:6:"key_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:8;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"fingerprint";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:51;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"type";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:16;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"expires";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;}s:11:"key_created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;}s:7:"deleted";a:4:{s:4:"type";s:7:"boolean";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_groups+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:7:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"name";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"deleted";a:4:{s:4:"type";s:7:"boolean";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_groups_users+2 0 added
    @@ -0,0 +1,2 @@
    +1504593413
    +a:6:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:8:"group_id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:8:"is_admin";a:4:{s:4:"type";s:7:"boolean";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_list+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:20:{i:0;s:21:"authentication_tokens";i:1;s:8:"comments";i:2;s:15:"controller_logs";i:3;s:11:"email_queue";i:4;s:9:"favorites";i:5;s:12:"file_storage";i:6;s:7:"gpgkeys";i:7;s:6:"groups";i:8;s:12:"groups_users";i:9;s:11:"permissions";i:10;s:17:"permissions_types";i:11;s:8:"phinxlog";i:12;s:8:"profiles";i:13;s:9:"resources";i:14;s:5:"roles";i:15;s:17:"schema_migrations";i:16;s:7:"secrets";i:17;s:11:"user_agents";i:18;s:5:"users";i:19;s:27:"users_resources_permissions";}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_permissions+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:10:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:3:"aco";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:30;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:15:"aco_foreign_key";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:3:"aro";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:30;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:15:"aro_foreign_key";a:7:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:5:"index";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"type";a:6:{s:4:"type";s:7:"integer";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:11;s:8:"unsigned";b:0;s:3:"key";s:5:"index";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_profiles+2 0 added
    @@ -0,0 +1,2 @@
    +1504593413
    +a:6:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:10:"first_name";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:9:"last_name";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_resources+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:11:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"name";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:8:"username";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:64;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"expiry_date";a:4:{s:4:"type";s:9:"timestamp";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;}s:3:"uri";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:1024;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"description";a:6:{s:4:"type";s:4:"text";s:4:"null";b:1;s:7:"default";N;s:6:"length";N;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"deleted";a:4:{s:4:"type";s:7:"boolean";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_roles+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:5:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"name";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:50;s:3:"key";s:6:"unique";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"description";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:255;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_secrets+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:8:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"resource_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"data";a:6:{s:4:"type";s:4:"text";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_user_agents+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:2:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:4:"name";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:512;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_users+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:9:{s:2:"id";a:7:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:3:"key";s:7:"primary";s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:7:"role_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:8:"username";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:50;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:6:"active";a:5:{s:4:"type";s:7:"integer";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;s:8:"unsigned";b:0;}s:7:"deleted";a:4:{s:4:"type";s:7:"boolean";s:4:"null";b:0;s:7:"default";s:1:"0";s:6:"length";i:1;}s:7:"created";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:8:"modified";a:4:{s:4:"type";s:8:"datetime";s:4:"null";b:0;s:7:"default";N;s:6:"length";N;}s:10:"created_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"modified_by";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}}
    
  • app/tmp/cache.tmp/models/passbolt_cake_model_default_passbolt_users_resources_permissions+2 0 added
    @@ -0,0 +1,2 @@
    +1504585170
    +a:4:{s:7:"user_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:11:"resource_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:0;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:13:"permission_id";a:6:{s:4:"type";s:6:"string";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:36;s:7:"collate";s:15:"utf8_unicode_ci";s:7:"charset";s:4:"utf8";}s:15:"permission_type";a:5:{s:4:"type";s:10:"biginteger";s:4:"null";b:1;s:7:"default";N;s:6:"length";i:11;s:8:"unsigned";b:0;}}
    
  • app/tmp/cache.tmp/passbolt_0d7c36iv8c7u3n6qohk59phdk7+2 0 added
    @@ -0,0 +1,2 @@
    +1504588196
    +s:323:"Config|a:3:{s:9:"userAgent";s:32:"1036590359c3daad6ab2984f0aa2d124";s:4:"time";i:1504598996;s:9:"countdown";i:10;}Message|a:1:{s:4:"auth";a:4:{s:7:"message";s:47:"You are not authorized to access that location.";s:3:"key";s:4:"auth";s:7:"element";s:13:"Flash/default";s:6:"params";a:0:{}}}Auth|a:1:{s:8:"redirect";s:1:"/";}";
    
  • app/tmp/cache.tmp/passbolt_90mup8bkfl69l9ddh1s1hmila5+2 0 added
    @@ -0,0 +1,2 @@
    +1504588196
    +s:343:"Config|a:3:{s:9:"userAgent";s:32:"1036590359c3daad6ab2984f0aa2d124";s:4:"time";i:1504598996;s:9:"countdown";i:10;}Auth|a:1:{s:4:"User";a:2:{s:4:"User";a:2:{s:2:"id";s:36:"cd49eb9e-73a2-3433-a018-6ed993d421e8";s:8:"username";s:16:"ada@passbolt.com";}s:4:"Role";a:2:{s:2:"id";s:36:"d1acbfc1-78d8-3e25-ad8b-7ab1eb0332dc";s:4:"name";s:4:"user";}}}";
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_cake_console_eng+2 0 added
    @@ -0,0 +1,2 @@
    +1504607673
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_cake_dev_en-us+2 0 added
    @@ -0,0 +1,2 @@
    +1504607807
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_cake_eng+2 0 added
    @@ -0,0 +1,2 @@
    +1504607673
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_cake_en-us+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_default_eng+2 0 added
    @@ -0,0 +1,2 @@
    +1504607673
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_default_en-us+2 0 added
    @@ -0,0 +1,2 @@
    +1504608582
    +a:1:{s:11:"LC_MESSAGES";a:0:{}}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_file_map+2 0 added
    @@ -0,0 +1,2 @@
    +1504608584
    +a:89:{s:9:"Configure";s:50:"/media/sf_www/passbolt/lib/Cake/Core/Configure.php";s:4:"Hash";s:48:"/media/sf_www/passbolt/lib/Cake/Utility/Hash.php";s:5:"Cache";s:47:"/media/sf_www/passbolt/lib/Cake/Cache/Cache.php";s:10:"FileEngine";s:59:"/media/sf_www/passbolt/lib/Cake/Cache/Engine/FileEngine.php";s:11:"CacheEngine";s:53:"/media/sf_www/passbolt/lib/Cake/Cache/CacheEngine.php";s:9:"Inflector";s:53:"/media/sf_www/passbolt/lib/Cake/Utility/Inflector.php";s:12:"ErrorHandler";s:54:"/media/sf_www/passbolt/lib/Cake/Error/ErrorHandler.php";s:9:"PhpReader";s:55:"/media/sf_www/passbolt/lib/Cake/Configure/PhpReader.php";s:21:"ConfigReaderInterface";s:67:"/media/sf_www/passbolt/lib/Cake/Configure/ConfigReaderInterface.php";s:10:"CakeObject";s:51:"/media/sf_www/passbolt/lib/Cake/Core/CakeObject.php";s:10:"CakePlugin";s:51:"/media/sf_www/passbolt/lib/Cake/Core/CakePlugin.php";s:15:"plugin.Purifier";s:63:"/media/sf_www/passbolt/app/Plugin/HtmlPurifier/Lib/Purifier.php";s:6:"Object";s:47:"/media/sf_www/passbolt/lib/Cake/Core/Object.php";s:23:"plugin.FileStorageUtils";s:78:"/media/sf_www/passbolt/app/Plugin/FileStorage/Lib/Utility/FileStorageUtils.php";s:35:"plugin.LocalImageProcessingListener";s:84:"/media/sf_www/passbolt/app/Plugin/FileStorage/Event/LocalImageProcessingListener.php";s:17:"CakeEventListener";s:59:"/media/sf_www/passbolt/lib/Cake/Event/CakeEventListener.php";s:16:"CakeEventManager";s:58:"/media/sf_www/passbolt/lib/Cake/Event/CakeEventManager.php";s:31:"plugin.LocalFileStorageListener";s:80:"/media/sf_www/passbolt/app/Plugin/FileStorage/Event/LocalFileStorageListener.php";s:30:"plugin.ImageProcessingListener";s:79:"/media/sf_www/passbolt/app/Plugin/FileStorage/Event/ImageProcessingListener.php";s:13:"ClassRegistry";s:57:"/media/sf_www/passbolt/lib/Cake/Utility/ClassRegistry.php";s:19:"plugin.ImageStorage";s:68:"/media/sf_www/passbolt/app/Plugin/FileStorage/Model/ImageStorage.php";s:18:"plugin.FileStorage";s:67:"/media/sf_www/passbolt/app/Plugin/FileStorage/Model/FileStorage.php";s:26:"plugin.FileStorageAppModel";s:75:"/media/sf_www/passbolt/app/Plugin/FileStorage/Model/FileStorageAppModel.php";s:8:"AppModel";s:45:"/media/sf_www/passbolt/app/Model/AppModel.php";s:5:"Model";s:47:"/media/sf_www/passbolt/lib/Cake/Model/Model.php";s:18:"BehaviorCollection";s:60:"/media/sf_www/passbolt/lib/Cake/Model/BehaviorCollection.php";s:16:"ObjectCollection";s:60:"/media/sf_www/passbolt/lib/Cake/Utility/ObjectCollection.php";s:19:"ContainableBehavior";s:70:"/media/sf_www/passbolt/lib/Cake/Model/Behavior/ContainableBehavior.php";s:13:"ModelBehavior";s:55:"/media/sf_www/passbolt/lib/Cake/Model/ModelBehavior.php";s:22:"plugin.ImagineBehavior";s:76:"/media/sf_www/passbolt/app/Plugin/Imagine/Model/Behavior/ImagineBehavior.php";s:30:"plugin.UploadValidatorBehavior";s:88:"/media/sf_www/passbolt/app/Plugin/FileStorage/Model/Behavior/UploadValidatorBehavior.php";s:21:"plugin.StorageManager";s:68:"/media/sf_www/passbolt/app/Plugin/FileStorage/Lib/StorageManager.php";s:7:"CakeLog";s:47:"/media/sf_www/passbolt/lib/Cake/Log/CakeLog.php";s:19:"LogEngineCollection";s:59:"/media/sf_www/passbolt/lib/Cake/Log/LogEngineCollection.php";s:7:"FileLog";s:54:"/media/sf_www/passbolt/lib/Cake/Log/Engine/FileLog.php";s:7:"BaseLog";s:54:"/media/sf_www/passbolt/lib/Cake/Log/Engine/BaseLog.php";s:16:"CakeLogInterface";s:56:"/media/sf_www/passbolt/lib/Cake/Log/CakeLogInterface.php";s:8:"Debugger";s:52:"/media/sf_www/passbolt/lib/Cake/Utility/Debugger.php";s:8:"CakeText";s:52:"/media/sf_www/passbolt/lib/Cake/Utility/CakeText.php";s:10:"Dispatcher";s:54:"/media/sf_www/passbolt/lib/Cake/Routing/Dispatcher.php";s:11:"CakeRequest";s:55:"/media/sf_www/passbolt/lib/Cake/Network/CakeRequest.php";s:12:"CakeResponse";s:56:"/media/sf_www/passbolt/lib/Cake/Network/CakeResponse.php";s:9:"CakeEvent";s:51:"/media/sf_www/passbolt/lib/Cake/Event/CakeEvent.php";s:15:"AssetDispatcher";s:66:"/media/sf_www/passbolt/lib/Cake/Routing/Filter/AssetDispatcher.php";s:16:"DispatcherFilter";s:60:"/media/sf_www/passbolt/lib/Cake/Routing/DispatcherFilter.php";s:15:"CacheDispatcher";s:66:"/media/sf_www/passbolt/lib/Cake/Routing/Filter/CacheDispatcher.php";s:6:"Router";s:50:"/media/sf_www/passbolt/lib/Cake/Routing/Router.php";s:9:"CakeRoute";s:59:"/media/sf_www/passbolt/lib/Cake/Routing/Route/CakeRoute.php";s:13:"RedirectRoute";s:63:"/media/sf_www/passbolt/lib/Cake/Routing/Route/RedirectRoute.php";s:16:"PluginShortRoute";s:66:"/media/sf_www/passbolt/lib/Cake/Routing/Route/PluginShortRoute.php";s:14:"AuthController";s:56:"/media/sf_www/passbolt/app/Controller/AuthController.php";s:13:"AppController";s:55:"/media/sf_www/passbolt/app/Controller/AppController.php";s:4:"User";s:41:"/media/sf_www/passbolt/app/Model/User.php";s:10:"Controller";s:57:"/media/sf_www/passbolt/lib/Cake/Controller/Controller.php";s:19:"ComponentCollection";s:66:"/media/sf_www/passbolt/lib/Cake/Controller/ComponentCollection.php";s:16:"SessionComponent";s:73:"/media/sf_www/passbolt/lib/Cake/Controller/Component/SessionComponent.php";s:9:"Component";s:56:"/media/sf_www/passbolt/lib/Cake/Controller/Component.php";s:21:"HtmlPurifierComponent";s:73:"/media/sf_www/passbolt/app/Controller/Component/HtmlPurifierComponent.php";s:15:"CookieComponent";s:72:"/media/sf_www/passbolt/lib/Cake/Controller/Component/CookieComponent.php";s:13:"AuthComponent";s:70:"/media/sf_www/passbolt/lib/Cake/Controller/Component/AuthComponent.php";s:16:"MessageComponent";s:68:"/media/sf_www/passbolt/app/Controller/Component/MessageComponent.php";s:11:"CakeSession";s:64:"/media/sf_www/passbolt/lib/Cake/Model/Datasource/CakeSession.php";s:4:"I18n";s:45:"/media/sf_www/passbolt/lib/Cake/I18n/I18n.php";s:4:"L10n";s:45:"/media/sf_www/passbolt/lib/Cake/I18n/L10n.php";s:15:"GpgAuthenticate";s:72:"/media/sf_www/passbolt/app/Controller/Component/Auth/GpgAuthenticate.php";s:16:"BaseAuthenticate";s:78:"/media/sf_www/passbolt/lib/Cake/Controller/Component/Auth/BaseAuthenticate.php";s:13:"ControllerLog";s:50:"/media/sf_www/passbolt/app/Model/ControllerLog.php";s:4:"Role";s:41:"/media/sf_www/passbolt/app/Model/Role.php";s:5:"Group";s:42:"/media/sf_www/passbolt/app/Model/Group.php";s:17:"TrackableBehavior";s:63:"/media/sf_www/passbolt/app/Model/Behavior/TrackableBehavior.php";s:17:"ConnectionManager";s:59:"/media/sf_www/passbolt/lib/Cake/Model/ConnectionManager.php";s:5:"Mysql";s:67:"/media/sf_www/passbolt/lib/Cake/Model/Datasource/Database/Mysql.php";s:9:"DboSource";s:62:"/media/sf_www/passbolt/lib/Cake/Model/Datasource/DboSource.php";s:10:"DataSource";s:63:"/media/sf_www/passbolt/lib/Cake/Model/Datasource/DataSource.php";s:9:"UserAgent";s:46:"/media/sf_www/passbolt/app/Model/UserAgent.php";s:14:"ModelValidator";s:56:"/media/sf_www/passbolt/lib/Cake/Model/ModelValidator.php";s:17:"CakeValidationSet";s:69:"/media/sf_www/passbolt/lib/Cake/Model/Validator/CakeValidationSet.php";s:18:"CakeValidationRule";s:70:"/media/sf_www/passbolt/lib/Cake/Model/Validator/CakeValidationRule.php";s:10:"Validation";s:54:"/media/sf_www/passbolt/lib/Cake/Utility/Validation.php";s:4:"View";s:45:"/media/sf_www/passbolt/lib/Cake/View/View.php";s:16:"HelperCollection";s:57:"/media/sf_www/passbolt/lib/Cake/View/HelperCollection.php";s:9:"ViewBlock";s:50:"/media/sf_www/passbolt/lib/Cake/View/ViewBlock.php";s:10:"HtmlHelper";s:58:"/media/sf_www/passbolt/lib/Cake/View/Helper/HtmlHelper.php";s:9:"AppHelper";s:52:"/media/sf_www/passbolt/app/View/Helper/AppHelper.php";s:6:"Helper";s:47:"/media/sf_www/passbolt/lib/Cake/View/Helper.php";s:10:"FormHelper";s:58:"/media/sf_www/passbolt/lib/Cake/View/Helper/FormHelper.php";s:18:"plugin.ImageHelper";s:73:"/media/sf_www/passbolt/app/Plugin/FileStorage/View/Helper/ImageHelper.php";s:6:"Gpgkey";s:43:"/media/sf_www/passbolt/app/Model/Gpgkey.php";s:3:"Gpg";s:48:"/media/sf_www/passbolt/app/Model/Utility/Gpg.php";}
    
  • app/tmp/cache.tmp/persistent/passbolt_cake_core_method_cache+2 0 added
    @@ -0,0 +1,2 @@
    +1504608584
    +a:3:{i:0;b:0;s:4:"name";a:40:{s:32:"7c61773bf3a97c117934c0a6cdebb179";s:10:"`passbolt`";s:32:"84aed5ca7734df237971a8964bd0217a";s:11:"`User`.`id`";s:32:"441e6eaad1b5f34da125c63e3ecd7702";s:17:"`User`.`username`";s:32:"200072d59800a6dfdf4020df7a01b767";s:11:"`Role`.`id`";s:32:"523e66361f9c9c47ff3d638d6c8cc5ba";s:13:"`Role`.`name`";s:32:"e281f763f1dbc6d22815fb38109a02fc";s:16:"`User`.`role_id`";s:32:"f94a437fb7858e092079378f93ef2c71";s:7:"`users`";s:32:"b4686556afaf1bba0c5270574ca15c54";s:6:"`Role`";s:32:"4bf8c442beb0250572f3070bda9f4074";s:7:"`roles`";s:32:"bf479f2d76b2ecfad480cbbc9842dc86";s:15:"`User`.`active`";s:32:"eb9b37fa6fe3e5c49f921ddcd721b306";s:6:"`User`";s:32:"47eb7bb09414c64f779510914712b6ee";s:7:"`count`";s:32:"25e2769e9c4ca772c287c1cb14ab1c97";s:13:"`user_agents`";s:32:"dc5357af33ad3104292efb2180dff85f";s:16:"`UserAgent`.`id`";s:32:"21e0df3bcea7cc37b0ee34fe4904efa0";s:11:"`UserAgent`";s:32:"deecda9c552a6c9c9fa88394a020efc1";s:17:"`controller_logs`";s:32:"d9275fb2b09deaa86d0ba5ab8e2a34f9";s:7:"`level`";s:32:"322115c6be8b9535c3319bd4f238f540";s:9:"`user_id`";s:32:"c21b6267874b0e2a6910e7590f176ae5";s:9:"`role_id`";s:32:"d3f8c131eb7677ec535790395d3a2418";s:15:"`user_agent_id`";s:32:"ccc3d594afa3a4c8e57b7e03688d03f5";s:4:"`ip`";s:32:"4909144be1f018bdd9dc4b24615806fc";s:8:"`method`";s:32:"f17647e79d54eb8d7b58e1d890e82adc";s:12:"`controller`";s:32:"62908d06a15e4f11de0cda8e0c78edb7";s:8:"`action`";s:32:"e28ee5d39c7e880a4916aeb05c555448";s:9:"`message`";s:32:"a8e3201bcaaf6a5e1a47a6d96b552400";s:14:"`request_data`";s:32:"d20e7bceeb0135a07432718f0d5096d7";s:9:"`created`";s:32:"d2c23d1b4feeec456d72cdc94cc44595";s:4:"`id`";s:32:"78e1a125c1a8822676ad24c1101b828c";s:14:"`Gpgkey`.`uid`";s:32:"7f764be82211f02b0733a464963ac4c9";s:15:"`Gpgkey`.`bits`";s:32:"c876e4428afa58c83d8e430575b60e1f";s:22:"`Gpgkey`.`fingerprint`";s:32:"430ee22d5dad5e621ca1a8f1ec10df92";s:17:"`Gpgkey`.`key_id`";s:32:"2106ebd61b5908df27358dc3432a86a0";s:22:"`Gpgkey`.`key_created`";s:32:"bd2e3a337c0e8699501df64984de1cb5";s:18:"`Gpgkey`.`expires`";s:32:"516880736100a33c94c525190163ddd1";s:15:"`Gpgkey`.`type`";s:32:"43ef97566e2155d4987c77aba6cbe11f";s:14:"`Gpgkey`.`key`";s:32:"7c2a817a6422ad0cf73ff7656fda03aa";s:18:"`Gpgkey`.`user_id`";s:32:"f326b20b1d737c077b460d5f3aa74f35";s:8:"`Gpgkey`";s:32:"8ac6152f92b34bf457fc47da2defa366";s:9:"`gpgkeys`";s:32:"6918a1ecfa7aad41e68ffe6354696cf3";s:16:"`User`.`deleted`";}s:6:"fields";a:4:{s:32:"4982fc5584fe03cb3244e32cbc5cb28c";a:4:{i:0;s:11:"`User`.`id`";i:1;s:17:"`User`.`username`";i:2;s:11:"`Role`.`id`";i:3;s:13:"`Role`.`name`";}s:32:"d22f3070eac023ec57dfb259a0ea1a48";a:1:{i:0;s:19:"COUNT(*) AS `count`";}s:32:"0676eebe69eb448f829912810d1b2061";a:1:{i:0;s:19:"COUNT(*) AS `count`";}s:32:"c516afab3f34651a7227f727737a3b1c";a:12:{i:0;s:11:"`User`.`id`";i:1;s:17:"`User`.`username`";i:2;s:14:"`Gpgkey`.`uid`";i:3;s:15:"`Gpgkey`.`bits`";i:4;s:22:"`Gpgkey`.`fingerprint`";i:5;s:17:"`Gpgkey`.`key_id`";i:6;s:22:"`Gpgkey`.`key_created`";i:7;s:18:"`Gpgkey`.`expires`";i:8;s:15:"`Gpgkey`.`type`";i:9;s:14:"`Gpgkey`.`key`";i:10;s:11:"`Role`.`id`";i:11;s:13:"`Role`.`name`";}}}
    
  • app/tmp/gpg/empty+0 0 modified
  • app/tmp/image-processing/empty+0 0 modified
  • app/tmp/logs/empty+0 0 modified
  • app/tmp/purifier/empty+0 0 modified
  • app/tmp/schema/empty+0 0 removed
  • app/tmp/selenium/empty+0 0 modified
  • app/tmp/sessions/empty+0 0 removed
  • app/tmp/swagger/info.php+0 0 modified
  • app/tmp/tests/empty+0 0 modified
  • app/webroot/js/app/component/password_browser.js+3 1 modified
    @@ -164,7 +164,9 @@ var PasswordBrowser = passbolt.component.PasswordBrowser = mad.component.Grid.ex
     				if (!uri.is('absolute') && uri.is('url')) {
     					uri.protocol('http');
     				}
    -
    +				if (uri.protocol().trim().toLowerCase() === "javascript") {
    +					uri.protocol('http');
    +				}
     				mad.helper.Html.create(
     					cellElement,
     					'inside_replace',
    
  • app/webroot/js/app/component/resource_sidebar.js+7 5 modified
    @@ -41,31 +41,33 @@ var ResourceSidebar = passbolt.component.ResourceSidebar = passbolt.component.Si
     	 */
     	beforeRender: function () {
     		this._super();
    -        if (this.options.selectedItem != null) {
    +		if (this.options.selectedItem != null) {
     			// Format the resource URI.
     			var uri = URI(this.options.selectedItem.uri);
    -			// If the uri is an url and is not absolute.
    +			// If the uri is an url and is not absolute or the protocol is javascript
     			// Add the default http:// protocol
     			if (!uri.is('absolute') && uri.is('url')) {
     				uri.protocol('http');
     			}
    -
    +			if (uri.protocol().trim().toLowerCase() === "javascript") {
    +				uri.protocol('http');
    +			}
     			// Send the resource formatted uri to the view
     			this.setViewData('resourceFormattedUri', uri.toString());
                 // Send the resource to the view
     			this.setViewData('resource', this.options.selectedItem);
                 // Send the secret strength label to the view
                 var secretStrength = passbolt.model.SecretStrength.getSecretStrength(this.options.selectedItem.Secret.data);
                 this.setViewData('secretStrength', secretStrength);
    -        }
    +		}
     	},
     
     	/**
     	 * After start hook.
     	 * @see {mad.Component}
     	 */
     	afterStart: function () {
    -        this._super();
    +		this._super();
     
     		// Instantiate the description controller for the current resource.
     		var descriptionController = new passbolt.component.sidebarSection.Description($('#js_rs_details_description', this.element), {
    
  • app/webroot/js/app/view/template/component/resource_sidebar.ejs+1 1 modified
    @@ -26,7 +26,7 @@
     		<li class="uri">
     			<span class="label"><%= __('URL') %></span>
     			<span class="value">
    -				<a href="<%= resourceFormattedUri %>" target="_blank"><%= resource.uri %></a>
    +				<a href="<%= resourceFormattedUri %>" target="_blank"><%= resourceFormattedUri %></a>
     			</span>
     		</li>
     		<li class="modified">
    
  • app/webroot/js/dist/bundles/app/passbolt.js+7 7 modified
    @@ -364,7 +364,7 @@ define("app/view/component/password_browser",["mad/view/component/grid","app/vie
     /*app/view/template/component/password_workspace_all_items_empty.ejs!lib/can/view/ejs/system*/
     define("app/view/template/component/password_workspace_all_items_empty.ejs!lib/can/view/ejs/system",["can/view/ejs/ejs"],function(can){return can.view.preloadStringRenderer("app_view_template_component_password_workspace_all_items_empty_ejs",can.EJS(function(_CONTEXT,_VIEW){with(_VIEW)with(_CONTEXT){var ___v1ew=[];return ___v1ew.push('<div class="empty-content">\n	<h1>'),___v1ew.push(can.view.txt(1,"h1",0,this,function(){return __("Welcome to passbolt!")})),___v1ew.push("</h1>\n	<p>"),___v1ew.push(can.view.txt(1,"p",0,this,function(){return __("It does feel a bit empty here. Create your first password or")})),___v1ew.push("<br>\n		"),___v1ew.push(can.view.txt(1,"br",0,this,function(){return __("wait for a team member to share one with you.")})),___v1ew.push("</p>\n</div>"),___v1ew.join("")}}))});
     /*app/component/password_browser*/
    -define("app/component/password_browser",["moment","urijs/punycode","urijs/SecondLevelDomains","urijs/IPv6","urijs/URI","mad/component/grid","mad/component/contextual_menu","mad/form/element/checkbox","app/model/resource","app/model/favorite","app/component/favorite","app/view/component/password_browser","app/view/template/component/password_workspace_all_items_empty.ejs!"],function(e,t,s,i,o,a,l,n,r,d,c,m,u){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),s&&s.__esModule||(s={"default":s}),i&&i.__esModule||(i={"default":i}),o&&o.__esModule||(o={"default":o}),a&&a.__esModule||(a={"default":a}),l&&l.__esModule||(l={"default":l}),n&&n.__esModule||(n={"default":n}),r&&r.__esModule||(r={"default":r}),d&&d.__esModule||(d={"default":d}),c&&c.__esModule||(c={"default":c}),m&&m.__esModule||(m={"default":m}),u&&u.__esModule||(u={"default":u});var p=(e["default"],o["default"]),_=passbolt.component.PasswordBrowser=mad.component.Grid.extend("passbolt.component.PasswordBrowser",{defaults:{itemClass:passbolt.model.Resource,viewClass:passbolt.view.component.PasswordBrowser,selectedRs:new can.Model.List,prefixItemId:"resource_",silentLoading:!1,state:"loading"}},{filterSettings:null,oldFilterSettings:null,init:function(e,t){t.map=new mad.Map({id:"id",name:"name",username:"username",secret:"Secret",uri:"uri",modified:"modified",owner:"Creator.username"}),t.columnModel=[new mad.model.GridColumn({name:"multipleSelect",index:"multipleSelect",css:["selections s-cell"],label:'<div class="input checkbox"> 						<input type="checkbox" name="select all" value="checkbox-select-all" id="checkbox-select-all" disabled="disabled"> 						<label for="checkbox-select-all">select all</label> 					</div>',cellAdapter:function(e,t,s,i,o){var a={};a[i.id]="";var l=mad.helper.Component.create(e,"inside_replace",mad.form.Checkbox,{id:"multiple_select_checkbox_"+i.id,name:"test",cssClasses:["js_checkbox_multiple_select"],availableValues:a});l.start()}}),new mad.model.GridColumn({name:"favorite",index:"favorite",css:["selections s-cell"],label:'<a> 						<i class="icon fav"></i> 						<span class="visuallyhidden">fav</span> 					</a>',cellAdapter:function(e,t,s,i,o){var a={};a[i.id]="";var l=mad.helper.Component.create(e,"inside_replace",passbolt.component.Favorite,{id:"favorite_"+i.id,name:"test2",instance:i});l.start()}}),new mad.model.GridColumn({name:"name",index:"name",css:["m-cell"],label:__("Resource"),sortable:!0}),new mad.model.GridColumn({name:"username",index:"username",css:["m-cell"],label:__("Username"),sortable:!0}),new mad.model.GridColumn({name:"secret",index:"secret",css:["m-cell","password"],label:__("Password"),cellAdapter:function(e,t,s,i,o){var a="";"undefined"!=typeof t[0]&&(a=t[0].data),mad.helper.Html.create(e,"inside_replace",'<div class="secret-copy"><a id="grid_secret_copy_'+i.id+'"><span>copy password to clipboard</span></a><pre>'+a+"</pre></div>")}}),new mad.model.GridColumn({name:"uri",index:"uri",css:["l-cell"],label:__("URI"),sortable:!0,cellAdapter:function(e,t,s,i,o){var a=p(t);!a.is("absolute")&&a.is("url")&&a.protocol("http"),mad.helper.Html.create(e,"inside_replace",'<a href="'+a.toString()+'" target="_blank">'+t+"</a>")}}),new mad.model.GridColumn({name:"modified",index:"modified",css:["m-cell"],sortable:!0,label:__("Modified"),valueAdapter:function(e,t,s,i){return passbolt.Common.datetimeGetTimeAgo(e)}}),new mad.model.GridColumn({name:"owner",index:"owner",css:["m-cell"],label:__("Owner"),sortable:!0})],this._super(e,t)},showContextualMenu:function(e,t,s,i){var o=$("#"+this.options.prefixItemId+e.id),a=o.offset(),l=new mad.component.ContextualMenu(null,{state:"hidden",source:i,coordinates:{x:t,y:a.top}});l.start();var n=passbolt.model.Permission.isAllowedTo(e,passbolt.READ),r=passbolt.model.Permission.isAllowedTo(e,passbolt.UPDATE),d=passbolt.model.Permission.isAllowedTo(e,passbolt.ADMIN),c=new mad.model.Action({id:"js_password_browser_menu_copy_username",label:"Copy username",initial_state:n?"ready":"disabled",action:function(t){var s={name:"username",data:e.username};mad.bus.trigger("passbolt.clipboard",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_copy_password",label:"Copy password",initial_state:n?"ready":"disabled",action:function(t){var s=e.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_copy_uri",label:"Copy URI",initial_state:n?"ready":"disabled",action:function(t){var s={name:"URL",data:e.uri};mad.bus.trigger("passbolt.clipboard",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_open_uri",label:"Open URI in a new tab",initial_state:n?"ready":"disabled",cssClasses:["separator-after"],action:function(t){var s=e.uri,i=window.open(s,"_blank");i.focus(),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_edit",label:"Edit",initial_state:r?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_edition",e),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_share",label:"Share",initial_state:d?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_sharing",e),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_delete",label:"Delete",initial_state:r?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_deletion",e),t.remove()}});l.insertItem(c),l.setState("ready")},refreshItem:function(e){if(this.itemExists(e)&&(this._super(e),this.isSelected(e))){var t="multiple_select_checkbox_"+e.id,s=mad.getControl(t,"mad.form.Checkbox");s.setValue([e.id]),this.view.selectItem(e)}},beforeSelect:function(e){var t=!0;if(this.state.is("selection"))if(this.isSelected(e))this.unselect(e),this.setState("ready"),t=!1;else for(var s=this.options.selectedRs.length-1;s>-1;s--)this.unselect(this.options.selectedRs[s]);return t},beforeUnselect:function(e){var t=!0;return t},isSelected:function(e){return this.options.selectedRs.length>0&&this.options.selectedRs[0].id==e.id?!0:!1},select:function(e){if(this.itemExists(e)&&!this.isSelected(e)){!this.state.is("multipleSelection")&&this.options.selectedRs.length>0&&this.unselect(this.options.selectedRs[0]),this.options.selectedRs.push(e);var t="multiple_select_checkbox_"+e.id,s=mad.getControl(t,"mad.form.Checkbox");s.setValue([e.id]),this.view.selectItem(e),mad.bus.trigger("resource_selected",e)}},unselect:function(e,t){if(t=t||!1,this.itemExists(e)){var s="multiple_select_checkbox_"+e.id,i=mad.getControl(s,"mad.form.Checkbox");i.reset(),this.view.unselectItem(e),mad.model.List.remove(this.options.selectedRs,e),t||mad.bus.trigger("resource_unselected",e)}},filterBySettings:function(e){var t=this,s=null;if(!this.filterSettings||this.filterSettings.id!==e.id){this.setState("loading"),this.reset();var i={silentLoading:!1,filter:e.getRules(["keywords"]),order:e.getOrders()};s=passbolt.model.Resource.findAll(i).then(function(e,s,i){null!=t.element&&(t.filtered=!1,t.load(e))})}return $.when(s).done(function(){t.filterSettings=e;var s=e.getOrders();if(s&&s[0]){var i=/((\w*)\.)?(\w*)\s*(asc|desc|ASC|DESC)?/i.exec(s[0]),o=(i[2],i[3]),a=i[4]?i[4].toLowerCase():"asc";if(o){var l=t.getColumnModel(o);l&&t.view.markColumnAsSorted(l,"asc"===a)}}var n=e.getRule("keywords");n&&""!=n?t.filterByKeywords(n,{searchInFields:["username","name","uri","description"]}):t.isFiltered()&&t.resetFilter();var r=["ready"];t.options.items.length||(r.push("empty"),"default"==t.filterSettings.id&&r.push("all_items")),t.setState(r)}),s},"{passbolt.model.Resource} created":function(e,t,s){this.state.is("empty")&&this.setState("ready"),this.insertItem(s,null,"first")},"{passbolt.model.Resource} updated":function(e,t,s){-1!=this.options.items.indexOf(s)&&this.refreshItem(s)}," item_selected":function(e,t,s,i){this.setState("selection"),this.beforeSelect(s)&&this.select(s)}," item_right_selected":function(e,t,s,i){this.select(s),this.showContextualMenu(s,i.pageX,i.pageY,i.target)}," password_clicked":function(e,t,s,i){var o=s.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",o)},".js_checkbox_multiple_select checked":function(e,t,s){this.state.is("ready")&&this.setState("selection");var i=mad.model.List.indexOf(this.options.items,s),o=this.options.items[i];this.beforeSelect(o)&&this.select(o)},".js_checkbox_multiple_select unchecked":function(e,t,s){var i=mad.model.List.indexOf(this.options.items,s),o=this.options.items[i];this.beforeUnselect()&&this.unselect(o),this.options.selectedRs.length?1==this.options.selectedRs.length&&this.setState("selection"):this.setState("ready")},"{mad.bus.element} filter_workspace":function(e,t,s){this.filterBySettings(s)},"{selectedRs} remove":function(e,t,s){for(var i in s)this.unselect(s[i])},stateReady:function(e){},stateSelection:function(e){},stateMultipleSelection:function(e){},stateEmpty:function(e){if(e){if("default"==this.filterSettings.id){var t=mad.View.render("app/view/template/component/password_workspace_all_items_empty.ejs");$(".tableview-content",this.element).prepend(t)}}else $(".empty-content",this.element).remove()}}),f=_;return{get default(){return f},__esModule:!0}});
    +define("app/component/password_browser",["moment","urijs/punycode","urijs/SecondLevelDomains","urijs/IPv6","urijs/URI","mad/component/grid","mad/component/contextual_menu","mad/form/element/checkbox","app/model/resource","app/model/favorite","app/component/favorite","app/view/component/password_browser","app/view/template/component/password_workspace_all_items_empty.ejs!"],function(e,t,s,i,o,a,l,n,r,d,c,m,u){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),s&&s.__esModule||(s={"default":s}),i&&i.__esModule||(i={"default":i}),o&&o.__esModule||(o={"default":o}),a&&a.__esModule||(a={"default":a}),l&&l.__esModule||(l={"default":l}),n&&n.__esModule||(n={"default":n}),r&&r.__esModule||(r={"default":r}),d&&d.__esModule||(d={"default":d}),c&&c.__esModule||(c={"default":c}),m&&m.__esModule||(m={"default":m}),u&&u.__esModule||(u={"default":u});var p=(e["default"],o["default"]),_=passbolt.component.PasswordBrowser=mad.component.Grid.extend("passbolt.component.PasswordBrowser",{defaults:{itemClass:passbolt.model.Resource,viewClass:passbolt.view.component.PasswordBrowser,selectedRs:new can.Model.List,prefixItemId:"resource_",silentLoading:!1,state:"loading"}},{filterSettings:null,oldFilterSettings:null,init:function(e,t){t.map=new mad.Map({id:"id",name:"name",username:"username",secret:"Secret",uri:"uri",modified:"modified",owner:"Creator.username"}),t.columnModel=[new mad.model.GridColumn({name:"multipleSelect",index:"multipleSelect",css:["selections s-cell"],label:'<div class="input checkbox"> 						<input type="checkbox" name="select all" value="checkbox-select-all" id="checkbox-select-all" disabled="disabled"> 						<label for="checkbox-select-all">select all</label> 					</div>',cellAdapter:function(e,t,s,i,o){var a={};a[i.id]="";var l=mad.helper.Component.create(e,"inside_replace",mad.form.Checkbox,{id:"multiple_select_checkbox_"+i.id,name:"test",cssClasses:["js_checkbox_multiple_select"],availableValues:a});l.start()}}),new mad.model.GridColumn({name:"favorite",index:"favorite",css:["selections s-cell"],label:'<a> 						<i class="icon fav"></i> 						<span class="visuallyhidden">fav</span> 					</a>',cellAdapter:function(e,t,s,i,o){var a={};a[i.id]="";var l=mad.helper.Component.create(e,"inside_replace",passbolt.component.Favorite,{id:"favorite_"+i.id,name:"test2",instance:i});l.start()}}),new mad.model.GridColumn({name:"name",index:"name",css:["m-cell"],label:__("Resource"),sortable:!0}),new mad.model.GridColumn({name:"username",index:"username",css:["m-cell"],label:__("Username"),sortable:!0}),new mad.model.GridColumn({name:"secret",index:"secret",css:["m-cell","password"],label:__("Password"),cellAdapter:function(e,t,s,i,o){var a="";"undefined"!=typeof t[0]&&(a=t[0].data),mad.helper.Html.create(e,"inside_replace",'<div class="secret-copy"><a id="grid_secret_copy_'+i.id+'"><span>copy password to clipboard</span></a><pre>'+a+"</pre></div>")}}),new mad.model.GridColumn({name:"uri",index:"uri",css:["l-cell"],label:__("URI"),sortable:!0,cellAdapter:function(e,t,s,i,o){var a=p(t);!a.is("absolute")&&a.is("url")&&a.protocol("http"),"javascript"===a.protocol().trim().toLowerCase()&&a.protocol("http"),mad.helper.Html.create(e,"inside_replace",'<a href="'+a.toString()+'" target="_blank">'+encodeURI(t)+"</a>")}}),new mad.model.GridColumn({name:"modified",index:"modified",css:["m-cell"],sortable:!0,label:__("Modified"),valueAdapter:function(e,t,s,i){return passbolt.Common.datetimeGetTimeAgo(e)}}),new mad.model.GridColumn({name:"owner",index:"owner",css:["m-cell"],label:__("Owner"),sortable:!0})],this._super(e,t)},showContextualMenu:function(e,t,s,i){var o=$("#"+this.options.prefixItemId+e.id),a=o.offset(),l=new mad.component.ContextualMenu(null,{state:"hidden",source:i,coordinates:{x:t,y:a.top}});l.start();var n=passbolt.model.Permission.isAllowedTo(e,passbolt.READ),r=passbolt.model.Permission.isAllowedTo(e,passbolt.UPDATE),d=passbolt.model.Permission.isAllowedTo(e,passbolt.ADMIN),c=new mad.model.Action({id:"js_password_browser_menu_copy_username",label:"Copy username",initial_state:n?"ready":"disabled",action:function(t){var s={name:"username",data:e.username};mad.bus.trigger("passbolt.clipboard",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_copy_password",label:"Copy password",initial_state:n?"ready":"disabled",action:function(t){var s=e.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_copy_uri",label:"Copy URI",initial_state:n?"ready":"disabled",action:function(t){var s={name:"URL",data:e.uri};mad.bus.trigger("passbolt.clipboard",s),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_open_uri",label:"Open URI in a new tab",initial_state:n?"ready":"disabled",cssClasses:["separator-after"],action:function(t){var s=e.uri,i=window.open(s,"_blank");i.focus(),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_edit",label:"Edit",initial_state:r?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_edition",e),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_share",label:"Share",initial_state:d?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_sharing",e),t.remove()}});l.insertItem(c);var c=new mad.model.Action({id:"js_password_browser_menu_delete",label:"Delete",initial_state:r?"ready":"disabled",action:function(t){mad.bus.trigger("request_resource_deletion",e),t.remove()}});l.insertItem(c),l.setState("ready")},refreshItem:function(e){if(this.itemExists(e)&&(this._super(e),this.isSelected(e))){var t="multiple_select_checkbox_"+e.id,s=mad.getControl(t,"mad.form.Checkbox");s.setValue([e.id]),this.view.selectItem(e)}},beforeSelect:function(e){var t=!0;if(this.state.is("selection"))if(this.isSelected(e))this.unselect(e),this.setState("ready"),t=!1;else for(var s=this.options.selectedRs.length-1;s>-1;s--)this.unselect(this.options.selectedRs[s]);return t},beforeUnselect:function(e){var t=!0;return t},isSelected:function(e){return this.options.selectedRs.length>0&&this.options.selectedRs[0].id==e.id?!0:!1},select:function(e){if(this.itemExists(e)&&!this.isSelected(e)){!this.state.is("multipleSelection")&&this.options.selectedRs.length>0&&this.unselect(this.options.selectedRs[0]),this.options.selectedRs.push(e);var t="multiple_select_checkbox_"+e.id,s=mad.getControl(t,"mad.form.Checkbox");s.setValue([e.id]),this.view.selectItem(e),mad.bus.trigger("resource_selected",e)}},unselect:function(e,t){if(t=t||!1,this.itemExists(e)){var s="multiple_select_checkbox_"+e.id,i=mad.getControl(s,"mad.form.Checkbox");i.reset(),this.view.unselectItem(e),mad.model.List.remove(this.options.selectedRs,e),t||mad.bus.trigger("resource_unselected",e)}},filterBySettings:function(e){var t=this,s=null;if(!this.filterSettings||this.filterSettings.id!==e.id){this.setState("loading"),this.reset();var i={silentLoading:!1,filter:e.getRules(["keywords"]),order:e.getOrders()};s=passbolt.model.Resource.findAll(i).then(function(e,s,i){null!=t.element&&(t.filtered=!1,t.load(e))})}return $.when(s).done(function(){t.filterSettings=e;var s=e.getOrders();if(s&&s[0]){var i=/((\w*)\.)?(\w*)\s*(asc|desc|ASC|DESC)?/i.exec(s[0]),o=(i[2],i[3]),a=i[4]?i[4].toLowerCase():"asc";if(o){var l=t.getColumnModel(o);l&&t.view.markColumnAsSorted(l,"asc"===a)}}var n=e.getRule("keywords");n&&""!=n?t.filterByKeywords(n,{searchInFields:["username","name","uri","description"]}):t.isFiltered()&&t.resetFilter();var r=["ready"];t.options.items.length||(r.push("empty"),"default"==t.filterSettings.id&&r.push("all_items")),t.setState(r)}),s},"{passbolt.model.Resource} created":function(e,t,s){this.state.is("empty")&&this.setState("ready"),this.insertItem(s,null,"first")},"{passbolt.model.Resource} updated":function(e,t,s){-1!=this.options.items.indexOf(s)&&this.refreshItem(s)}," item_selected":function(e,t,s,i){this.setState("selection"),this.beforeSelect(s)&&this.select(s)}," item_right_selected":function(e,t,s,i){this.select(s),this.showContextualMenu(s,i.pageX,i.pageY,i.target)}," password_clicked":function(e,t,s,i){var o=s.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",o)},".js_checkbox_multiple_select checked":function(e,t,s){this.state.is("ready")&&this.setState("selection");var i=mad.model.List.indexOf(this.options.items,s),o=this.options.items[i];this.beforeSelect(o)&&this.select(o)},".js_checkbox_multiple_select unchecked":function(e,t,s){var i=mad.model.List.indexOf(this.options.items,s),o=this.options.items[i];this.beforeUnselect()&&this.unselect(o),this.options.selectedRs.length?1==this.options.selectedRs.length&&this.setState("selection"):this.setState("ready")},"{mad.bus.element} filter_workspace":function(e,t,s){this.filterBySettings(s)},"{selectedRs} remove":function(e,t,s){for(var i in s)this.unselect(s[i])},stateReady:function(e){},stateSelection:function(e){},stateMultipleSelection:function(e){},stateEmpty:function(e){if(e){if("default"==this.filterSettings.id){var t=mad.View.render("app/view/template/component/password_workspace_all_items_empty.ejs");$(".tableview-content",this.element).prepend(t)}}else $(".empty-content",this.element).remove()}}),f=_;return{get default(){return f},__esModule:!0}});
     /*mad/form/element/autocomplete*/
     define("mad/form/element/autocomplete",["mad/form/choice_element","mad/view/form/element/textbox"],function(e,t){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t});var o=mad.form.Autocomplete=mad.form.Textbox.extend("mad.form.Autocomplete",{defaults:{label:"Autocomplete Form Element Controller",tag:"input"}},{afterStart:function(){var e={itemClass:mad.Model,cssClasses:["autocomplete-content"],templateUri:"mad/view/template/component/tree.ejs",state:"hidden",map:new mad.Map({id:"id",label:"label",model:"model"})};this.options.list=mad.helper.Component.create(this.element,"after",mad.component.Tree,e),this.options.list.start(),this.on()}," changed":function(e,t,o){var l=this;this.options.callbacks.ajax&&this.options.callbacks.ajax.apply(this,[o.value]).done(function(e){l.options.list.reset(),l.options.list.load(e),l.options.list.setState("ready")})},"{list.element} item_selected":function(e,t,o){this.setValue(o.label),this.options.list.setState("hidden"),this.element.trigger("item_selected",[o,t])}}),l=o;return{get default(){return l},__esModule:!0}});
     /*mad/view/form/element/dropdown*/
    @@ -395,8 +395,12 @@ define("app/view/template/component/comments.ejs!lib/can/view/ejs/system",["can/
     define("app/view/component/comments",["mad/view/view","app/view/template/component/comments.ejs!"],function(e,t){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t});var n=passbolt.view.component.Comments=mad.View.extend("passbolt.view.component.Comments",{},{init:function(e,t){this._super(e,t)}," a.js_add_comment click":function(e,t){this.getController().addForm.setState("ready")},"a.button.comment-submit click":function(e,t){e.trigger("submit")}}),o=n;return{get default(){return o},__esModule:!0}});
     /*app/view/component/comments_list*/
     define("app/view/component/comments_list",["mad/view/view","mad/view/component/tree","app/view/template/component/comments.ejs!"],function(e,t,n){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),n&&n.__esModule||(n={"default":n});var o=passbolt.view.component.CommentsList=mad.view.component.Tree.extend("passbolt.view.component.CommentsList",{},{init:function(e,t){this._super(e,t)}," .actions a.js_delete_comment click":function(e,t){t.stopPropagation(),t.preventDefault();var n=null,o=e.parents("li.comment-wrapper");n=this.getController().getItemClass()?o.data(this.getController().getItemClass().fullName):o[0].id,e.trigger("request_delete_comment",n)}}),s=o;return{get default(){return s},__esModule:!0}});
    +/*lib/can/util/domless/domless*/
    +System.set('lib/can/util/domless/domless', System.newModule({}));
     /*app/view/template/component/comment/comment_item.ejs!lib/can/view/ejs/system*/
     define("app/view/template/component/comment/comment_item.ejs!lib/can/view/ejs/system",["can/view/ejs/ejs"],function(can){return can.view.preloadStringRenderer("app_view_template_component_comment_comment_item_ejs",can.EJS(function(_CONTEXT,_VIEW){with(_VIEW)with(_CONTEXT){var ___v1ew=[];return ___v1ew.push('<li class="comment-wrapper" id="'),___v1ew.push(can.view.txt(!0,"li","id",this,function(){return mappedItem.id})),___v1ew.push('" '),___v1ew.push(can.view.txt(1,"li",1,this,function(){return can.proxy(function(e){var n=can.$(e);n.data(itemClass.fullName,item)},this)})),___v1ew.push("",can.view.pending({scope:this}),">"),___v1ew.push('\n	<div class="comment">\n		<div class="wrap-right-column">\n			<div class="right-column">\n				<div class="content-wrapper">\n					<p>'),___v1ew.push(can.view.txt(1,"p",0,this,function(){return mappedItem.content})),___v1ew.push('</p>\n					<div class="metadata">\n						<span class="author username">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return mappedItem.creatorName})),___v1ew.push('</span>\n						<span class="modified">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return datetimeGetTimeAgo(mappedItem.modified)})),___v1ew.push('</span>\n					</div>\n					<div class="actions">\n						<ul>\n							<li>\n								<a class="js_delete_comment hidden">\n									<i class="fa fa-fw fa-trash"></i>\n									<span class="visuallyhidden">delete</span>\n								</a>\n							</li>\n						</ul>\n					</div>\n				</div>\n			</div>\n		</div>\n		<div class="left-column">\n			<div class="author profile picture"><a>\n				<img '),___v1ew.push(can.view.txt(2,"img","src",this,function(){var e=[];return e.push('src="'),e.push(mappedItem.creatorAvatarPath),e.push('"'),e.join("")})),___v1ew.push(' alt="comment author picture" ',can.view.pending({scope:this}),"/>"),___v1ew.push("\n			</a></div>\n		</div>\n	</div>\n</li>"),___v1ew.join("")}}))});
    +/*lib/can/util/array/makeArray*/
    +System.set('lib/can/util/array/makeArray', System.newModule({}));
     /*app/component/comments_list*/
     define("app/component/comments_list",["mad/component/confirm","mad/component/tree","app/view/component/comments_list","app/view/component/comments","app/model/comment","app/view/template/component/comment/comment_item.ejs!"],function(e,t,o,n,m,l){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),o&&o.__esModule||(o={"default":o}),n&&n.__esModule||(n={"default":n}),m&&m.__esModule||(m={"default":m}),l&&l.__esModule||(l={"default":l});var i=passbolt.component.CommentsList=mad.component.Tree.extend("passbolt.component.CommentsList",{defaults:{label:"Comments List Controller",viewClass:passbolt.view.component.CommentsList,itemClass:passbolt.model.Comment,templateUri:"mad/view/template/component/tree.ejs",itemTemplateUri:"app/view/template/component/comment/comment_item.ejs",foreignModel:null,foreignId:null,selfLoad:!1,map:new mad.Map({id:"id",content:"content",modified:"modified",creatorAvatarPath:{key:"Creator",func:function(e,t,o){return e.Profile.avatarPath("small")}},creatorName:{key:"Creator",func:function(e,t,o){return e.Profile.fullName()}}})}},{init:function(e,t){if(this._super(e,t),this.options.selfLoad===!0){var o=this;passbolt.model.Comment.findAll({foreignModel:this.options.foreignModel,foreignId:this.options.foreignId},function(e,t,n){o.load(e)})}},insertItem:function(e,t,o){this._super(e,t,o);var n=void 0!=e.created_by&&e.created_by==passbolt.model.User.getCurrent().id;if(n){var m=$("li#"+e.id+" .js_delete_comment",this.element);m.removeClass("hidden")}}," request_delete_comment":function(e,t,o){new mad.component.Confirm(null,{label:__("Do you really want to delete comment ?"),content:__("Please confirm you really want to delete the comment. After clicking ok, the comment will be <strong>deleted permanently</strong>."),submitButton:{label:__("delete comment"),cssClasses:["warning"]},action:function(){mad.bus.trigger("request_delete_comment",o)}}).start()}}),s=i;return{get default(){return s},__esModule:!0}});
     /*app/view/template/form/comment/add.ejs!lib/can/view/ejs/system*/
    @@ -431,14 +435,10 @@ define("app/view/component/sidebar_section/permissions",["mad/view/view","app/vi
     define("app/view/template/component/sidebar_section/permission_list_item.ejs!lib/can/view/ejs/system",["can/view/ejs/ejs"],function(can){return can.view.preloadStringRenderer("app_view_template_component_sidebar_section_permission_list_item_ejs",can.EJS(function(_CONTEXT,_VIEW){with(_VIEW)with(_CONTEXT){var ___v1ew=[];return ___v1ew.push('<li id="'),___v1ew.push(can.view.txt(!0,"li","id",this,function(){return mappedItem.id})),___v1ew.push('" '),___v1ew.push(can.view.txt(1,"li",1,this,function(){return can.proxy(function(e){var i=can.$(e);i.data(itemClass.fullName,item)},this)})),___v1ew.push(' class="permission usercard-col-2 '),___v1ew.push(can.view.txt(!0,"li","class",this,function(){return cssClasses.join(" ")})),___v1ew.push('"',can.view.pending({scope:this}),">"),___v1ew.push('\n	<div class="content-wrapper">\n		<div class="content">\n			<div class="name">'),___v1ew.push(can.view.txt(1,"div",0,this,function(){return mappedItem.acoLabel})),___v1ew.push(" ("),___v1ew.push(can.view.txt(1,"div",0,this,function(){return mappedItem.acoDetails})),___v1ew.push(')</div>\n			<div class="subinfo">'),___v1ew.push(can.view.txt(1,"div",0,this,function(){return mappedItem.permLabel})),___v1ew.push('</div>\n		</div>\n	</div>\n	<div class="avatar">\n		<img '),___v1ew.push(can.view.txt(2,"img","src",this,function(){var e=[];return e.push('src="'),e.push(mappedItem.aroAvatarPath),e.push('"'),e.join("")})),___v1ew.push("",can.view.pending({scope:this}),">"),___v1ew.push("\n	</div>\n</li>"),___v1ew.join("")}}))});
     /*app/component/sidebar_section/permissions*/
     define("app/component/sidebar_section/permissions",["app/component/sidebar_section","app/model/permission","app/view/component/sidebar_section/permissions","app/view/template/component/sidebar_section/permissions.ejs!","app/view/template/component/sidebar_section/permission_list_item.ejs!"],function(e,s,t,i,o){"use strict";e&&e.__esModule||(e={"default":e}),s&&s.__esModule||(s={"default":s}),t&&t.__esModule||(t={"default":t}),i&&i.__esModule||(i={"default":i}),o&&o.__esModule||(o={"default":o});var n=passbolt.component.sidebarSection.Permissions=mad.Component.extend("passbolt.component.sidebarSection.Permissions",{defaults:{label:"Sidebar Section Permissions Component",viewClass:passbolt.view.component.sidebarSection.Permissions,templateUri:"app/view/template/component/sidebar_section/permissions.ejs",acoInstance:null}},{afterStart:function(){var e=this;this.options.acoInstance.id;this.setState("loading"),this.permissionsList=new mad.component.Tree($("#js_rs_details_permissions_list"),{cssClasses:["permissions","shared-with"],viewClass:mad.view.component.Tree,itemClass:passbolt.model.Permission,templateUri:"mad/view/template/component/tree.ejs",itemTemplateUri:"app/view/template/component/sidebar_section/permission_list_item.ejs",map:new mad.Map({id:"id",isDirect:{key:"aro_foreign_key",func:function(s,t,i){return i.isDirect(e.options.acoInstance)}},aroLabel:{key:"aro",func:function(e,s,t){return e.toLowerCase()}},aroAvatarPath:{key:"id",func:function(e,s,t){return"User"==t.aro?t.User.Profile.avatarPath("small"):"img/avatar/group_default.png"}},permType:"PermissionType.serial",permLabel:{key:"type",func:function(e,s,t){return passbolt.model.PermissionType.formatToString(e)}},acoLabel:{key:"aco_foreign_key",func:function(e,s,t){switch(t.aro){case"Group":return t.Group.name;case"User":return t.User.Profile.first_name+" "+t.User.Profile.last_name}}},acoDetails:{key:"aco_foreign_key",func:function(e,s,t){switch(t.aro){case"Group":return __("group");case"User":return t.User.username}}}})}),this.permissionsList.start(),this.loadPermissions(),this.on()},beforeRender:function(){this._super(),this.setViewData("administrable",passbolt.model.Permission.isAllowedTo(this.options.acoInstance,passbolt.ADMIN))},loadPermissions:function(){var e=this,s=this.options.acoInstance.constructor.shortName,t=this.options.acoInstance.id;return this.setState("loading"),this.permissionsList.reset(),passbolt.model.Permission.findAll({aco:s,aco_foreign_key:t},function(s,t,i){e.permissionsList.load(s),e.setState("ready")})}," request_resource_permissions_edit":function(e,s){mad.bus.trigger("request_resource_sharing",this.options.acoInstance)}}),a=n;return{get default(){return a},__esModule:!0}});
    -/*lib/can/util/array/makeArray*/
    -System.set('lib/can/util/array/makeArray', System.newModule({}));
    -/*lib/can/util/domless/domless*/
    -System.set('lib/can/util/domless/domless', System.newModule({}));
     /*app/view/template/component/resource_sidebar.ejs!lib/can/view/ejs/system*/
    -define("app/view/template/component/resource_sidebar.ejs!lib/can/view/ejs/system",["can/view/ejs/ejs"],function(can){return can.view.preloadStringRenderer("app_view_template_component_resource_sidebar_ejs",can.EJS(function(_CONTEXT,_VIEW){with(_VIEW)with(_CONTEXT){var ___v1ew=[];return ___v1ew.push('<div class="sidebar resource">\n	<h3>'),___v1ew.push(can.view.txt(1,"h3",0,this,function(){return resource.name})),___v1ew.push('</h3>\n	<a class="js_sidebar_close dialog-close">\n		<i class="fa fa-close"></i>\n		<span class="visuallyhidden">close</span>\n	</a>\n	<div class="detailed-information">\n	<h4>'),___v1ew.push(can.view.txt(1,"h4",0,this,function(){return __("Information")})),___v1ew.push('</h4>\n	<ul>\n		<li class="username">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Username")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.username})),___v1ew.push('</span>\n		</li>\n		<li class="password">\n			<div class="label">'),___v1ew.push(can.view.txt(1,"div",0,this,function(){return __("Password")})),___v1ew.push('</div>\n			<div class="value">\n				<div class="secret-copy">\n					<a id="sidebar_secret_copy_'),___v1ew.push(can.view.txt(!0,"a","id",this,function(){return resource.id})),___v1ew.push('"',can.view.pending({scope:this}),">"),___v1ew.push("\n						<span>copy password to clipboard</span>\n					</a>\n					<pre>"),___v1ew.push(can.view.txt(1,"pre",0,this,function(){return resource.Secret[0].data})),___v1ew.push('</pre>\n				</div>\n			</div>\n		</li>\n		<li class="uri">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("URL")})),___v1ew.push('</span>\n			<span class="value">\n				<a href="'),___v1ew.push(can.view.txt(!0,"a","href",this,function(){return resourceFormattedUri})),___v1ew.push('" target="_blank"',can.view.pending({scope:this}),">"),___v1ew.push(can.view.txt(1,"a",0,this,function(){return resource.uri})),___v1ew.push('</a>\n			</span>\n		</li>\n		<li class="modified">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Modified")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return datetimeGetTimeAgo(resource.modified)})),___v1ew.push('</span>\n		</li>\n		<li class="modified-by">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Modified by")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.Modifier.username})),___v1ew.push('</span>\n		</li>\n		<li class="created-by">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Owner")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.Creator.username})),___v1ew.push('</span>\n		</li>\n		<!--<li class="expire">-->\n			<!--<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Expire")})),___v1ew.push('</span>-->\n			<!--<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return null!=resource.expiry_date?moment(resource.expiry_date).fromNow():__("never")})),___v1ew.push('</span>-->\n		<!--</li>-->\n		<!--<li class="strength">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Strength")})),___v1ew.push("</span>\n			<span>\n				"),___v1ew.push(can.view.txt(1,"span",0,this,function(){return secretStrength?secretStrength.label:"-"})),___v1ew.push('\n			</span>\n		</li>-->\n	</ul>\n	</div>\n	<!-- Description management -->\n	<div class="description" id="js_rs_details_description"></div>\n	<!-- Permissions management -->\n	<div class="permissions" id="js_rs_details_permissions"></div>\n	<!-- Comments management -->\n	<div class="comments clearfix" id="js_rs_details_comments"></div>\n</div>\n'),___v1ew.join("")}}))});
    +define("app/view/template/component/resource_sidebar.ejs!lib/can/view/ejs/system",["can/view/ejs/ejs"],function(can){return can.view.preloadStringRenderer("app_view_template_component_resource_sidebar_ejs",can.EJS(function(_CONTEXT,_VIEW){with(_VIEW)with(_CONTEXT){var ___v1ew=[];return ___v1ew.push('<div class="sidebar resource">\n	<h3>'),___v1ew.push(can.view.txt(1,"h3",0,this,function(){return resource.name})),___v1ew.push('</h3>\n	<a class="js_sidebar_close dialog-close">\n		<i class="fa fa-close"></i>\n		<span class="visuallyhidden">close</span>\n	</a>\n	<div class="detailed-information">\n	<h4>'),___v1ew.push(can.view.txt(1,"h4",0,this,function(){return __("Information")})),___v1ew.push('</h4>\n	<ul>\n		<li class="username">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Username")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.username})),___v1ew.push('</span>\n		</li>\n		<li class="password">\n			<div class="label">'),___v1ew.push(can.view.txt(1,"div",0,this,function(){return __("Password")})),___v1ew.push('</div>\n			<div class="value">\n				<div class="secret-copy">\n					<a id="sidebar_secret_copy_'),___v1ew.push(can.view.txt(!0,"a","id",this,function(){return resource.id})),___v1ew.push('"',can.view.pending({scope:this}),">"),___v1ew.push("\n						<span>copy password to clipboard</span>\n					</a>\n					<pre>"),___v1ew.push(can.view.txt(1,"pre",0,this,function(){return resource.Secret[0].data})),___v1ew.push('</pre>\n				</div>\n			</div>\n		</li>\n		<li class="uri">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("URL")})),___v1ew.push('</span>\n			<span class="value">\n				<a href="'),___v1ew.push(can.view.txt(!0,"a","href",this,function(){return resourceFormattedUri})),___v1ew.push('" target="_blank"',can.view.pending({scope:this}),">"),___v1ew.push(can.view.txt(1,"a",0,this,function(){return resourceFormattedUri})),___v1ew.push('</a>\n			</span>\n		</li>\n		<li class="modified">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Modified")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return datetimeGetTimeAgo(resource.modified)})),___v1ew.push('</span>\n		</li>\n		<li class="modified-by">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Modified by")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.Modifier.username})),___v1ew.push('</span>\n		</li>\n		<li class="created-by">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Owner")})),___v1ew.push('</span>\n			<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return resource.Creator.username})),___v1ew.push('</span>\n		</li>\n		<!--<li class="expire">-->\n			<!--<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Expire")})),___v1ew.push('</span>-->\n			<!--<span class="value">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return null!=resource.expiry_date?moment(resource.expiry_date).fromNow():__("never")})),___v1ew.push('</span>-->\n		<!--</li>-->\n		<!--<li class="strength">\n			<span class="label">'),___v1ew.push(can.view.txt(1,"span",0,this,function(){return __("Strength")})),___v1ew.push("</span>\n			<span>\n				"),___v1ew.push(can.view.txt(1,"span",0,this,function(){return secretStrength?secretStrength.label:"-"})),___v1ew.push('\n			</span>\n		</li>-->\n	</ul>\n	</div>\n	<!-- Description management -->\n	<div class="description" id="js_rs_details_description"></div>\n	<!-- Permissions management -->\n	<div class="permissions" id="js_rs_details_permissions"></div>\n	<!-- Comments management -->\n	<div class="comments clearfix" id="js_rs_details_comments"></div>\n</div>\n'),___v1ew.join("")}}))});
     /*app/component/resource_sidebar*/
    -define("app/component/resource_sidebar",["urijs/punycode","urijs/SecondLevelDomains","urijs/IPv6","urijs/URI","mad/view/component/tree","app/component/sidebar","app/view/component/resource_sidebar","app/component/comments","app/component/sidebar_section","app/component/sidebar_section/description","app/component/sidebar_section/permissions","app/view/template/component/resource_sidebar.ejs!"],function(e,t,s,o,i,r,n,a,d,c,p,l){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),s&&s.__esModule||(s={"default":s}),o&&o.__esModule||(o={"default":o}),i&&i.__esModule||(i={"default":i}),r&&r.__esModule||(r={"default":r}),n&&n.__esModule||(n={"default":n}),a&&a.__esModule||(a={"default":a}),d&&d.__esModule||(d={"default":d}),c&&c.__esModule||(c={"default":c}),p&&p.__esModule||(p={"default":p}),l&&l.__esModule||(l={"default":l});var u=o["default"],m=passbolt.component.ResourceSidebar=passbolt.component.Sidebar.extend("passbolt.component.ResourceSidebar",{defaults:{label:"Resource Details",viewClass:passbolt.view.component.ResourceSidebar,templateUri:"app/view/template/component/resource_sidebar.ejs"}},{beforeRender:function(){if(this._super(),null!=this.options.selectedItem){var e=u(this.options.selectedItem.uri);!e.is("absolute")&&e.is("url")&&e.protocol("http"),this.setViewData("resourceFormattedUri",e.toString()),this.setViewData("resource",this.options.selectedItem);var t=passbolt.model.SecretStrength.getSecretStrength(this.options.selectedItem.Secret.data);this.setViewData("secretStrength",t)}},afterStart:function(){this._super();var e=new passbolt.component.sidebarSection.Description($("#js_rs_details_description",this.element),{resource:this.options.selectedItem});e.start();var t=new passbolt.component.sidebarSection.Permissions($("#js_rs_details_permissions",this.element),{acoInstance:this.options.selectedItem});t.start();var s=new passbolt.component.Comments($("#js_rs_details_comments",this.element),{resource:this.options.selectedItem,foreignModel:"Resource",foreignId:this.options.selectedItem.id});s.start()}," password_clicked":function(e,t){var s=this.options.selectedItem.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",s)}}),_=m;return{get default(){return _},__esModule:!0}});
    +define("app/component/resource_sidebar",["urijs/punycode","urijs/SecondLevelDomains","urijs/IPv6","urijs/URI","mad/view/component/tree","app/component/sidebar","app/view/component/resource_sidebar","app/component/comments","app/component/sidebar_section","app/component/sidebar_section/description","app/component/sidebar_section/permissions","app/view/template/component/resource_sidebar.ejs!"],function(e,t,s,o,r,i,n,a,c,d,p,l){"use strict";e&&e.__esModule||(e={"default":e}),t&&t.__esModule||(t={"default":t}),s&&s.__esModule||(s={"default":s}),o&&o.__esModule||(o={"default":o}),r&&r.__esModule||(r={"default":r}),i&&i.__esModule||(i={"default":i}),n&&n.__esModule||(n={"default":n}),a&&a.__esModule||(a={"default":a}),c&&c.__esModule||(c={"default":c}),d&&d.__esModule||(d={"default":d}),p&&p.__esModule||(p={"default":p}),l&&l.__esModule||(l={"default":l});var u=o["default"],m=passbolt.component.ResourceSidebar=passbolt.component.Sidebar.extend("passbolt.component.ResourceSidebar",{defaults:{label:"Resource Details",viewClass:passbolt.view.component.ResourceSidebar,templateUri:"app/view/template/component/resource_sidebar.ejs"}},{beforeRender:function(){if(this._super(),null!=this.options.selectedItem){var e=u(this.options.selectedItem.uri);!e.is("absolute")&&e.is("url")&&e.protocol("http"),"javascript"===e.protocol().trim().toLowerCase()&&e.protocol("http"),this.setViewData("resourceFormattedUri",e.toString()),this.setViewData("resource",this.options.selectedItem);var t=passbolt.model.SecretStrength.getSecretStrength(this.options.selectedItem.Secret.data);this.setViewData("secretStrength",t)}},afterStart:function(){this._super();var e=new passbolt.component.sidebarSection.Description($("#js_rs_details_description",this.element),{resource:this.options.selectedItem});e.start();var t=new passbolt.component.sidebarSection.Permissions($("#js_rs_details_permissions",this.element),{acoInstance:this.options.selectedItem});t.start();var s=new passbolt.component.Comments($("#js_rs_details_comments",this.element),{resource:this.options.selectedItem,foreignModel:"Resource",foreignId:this.options.selectedItem.id});s.start()}," password_clicked":function(e,t){var s=this.options.selectedItem.Secret[0].data;mad.bus.trigger("passbolt.secret.decrypt",s)}}),_=m;return{get default(){return _},__esModule:!0}});
     /*app/component/resource_shortcuts*/
     define("app/component/resource_shortcuts",["mad/component/menu"],function(e){"use strict";e&&e.__esModule||(e={"default":e});var t=passbolt.component.ResourceShortcuts=mad.component.Menu.extend("passbolt.component.ResourceShortcuts",{defaults:{}},{afterStart:function(){var e=[new mad.model.Action({id:"js_pwd_wsp_filter_all",label:__("All items"),filter:passbolt.component.PasswordWorkspace.getDefaultFilterSettings()}),new mad.model.Action({id:"js_pwd_wsp_filter_favorite",label:__("Favorite"),filter:new passbolt.model.Filter({id:"workspace_filter_favorite",label:__("Favorite"),rules:{"is-favorite":!0},order:["Resource.modified DESC"]})}),new mad.model.Action({id:"js_pwd_wsp_filter_modified",label:__("Recently modified"),filter:new passbolt.model.Filter({id:"workspace_filter_modified",label:__("Recently modified"),order:["Resource.modified DESC"]})}),new mad.model.Action({id:"js_pwd_wsp_filter_share",label:__("Shared with me"),filter:new passbolt.model.Filter({id:"workspace_filter_shared",label:__("Shared with me"),rules:{"is-shared-with-me":!0},order:["Resource.modified DESC"]})}),new mad.model.Action({id:"js_pwd_wsp_filter_own",label:__("Items I own"),filter:new passbolt.model.Filter({id:"workspace_filter_own",label:__("Items I own"),rules:{"is-owned-by-me":!0},order:["Resource.modified DESC"]})})];this.load(e),this.selectItem(e[0])}," item_selected":function(e,t,i){this._super(e,t,i),i.state.is("disabled")||mad.bus.trigger("filter_workspace",i.filter)},"{mad.bus.element} filter_workspace":function(e,t,i){var o=this;this.unselectAll(),this.options.items.each(function(e){e.filter.id==i.id&&o.selectItem(e)})}}),i=t;return{get default(){return i},__esModule:!0}});
     /*mad/component/toggle_button*/
    

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

6

News mentions

0

No linked articles in our index yet.