Skip to content

Commit

Permalink
Merge branch '3.2.x'
Browse files Browse the repository at this point in the history
  • Loading branch information
marc1706 committed Mar 19, 2017
2 parents 218466b + 9958a68 commit adc2ea3
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 57 deletions.
18 changes: 8 additions & 10 deletions phpBB/includes/acp/acp_extensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -145,14 +145,13 @@ function main()
break;

case 'enable_pre':
if (!$md_manager->validate_dir())
try
{
trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
$md_manager->validate_enable();
}

if (!$md_manager->validate_enable())
catch (\phpbb\extension\exception $e)
{
trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);
}

$extension = $phpbb_extension_manager->get_extension($ext_name);
Expand All @@ -176,14 +175,13 @@ function main()
break;

case 'enable':
if (!$md_manager->validate_dir())
try
{
trigger_error($user->lang['EXTENSION_DIR_INVALID'] . adm_back_link($this->u_action), E_USER_WARNING);
$md_manager->validate_enable();
}

if (!$md_manager->validate_enable())
catch (\phpbb\extension\exception $e)
{
trigger_error($user->lang['EXTENSION_NOT_AVAILABLE'] . adm_back_link($this->u_action), E_USER_WARNING);
trigger_error($e . adm_back_link($this->u_action), E_USER_WARNING);
}

$extension = $phpbb_extension_manager->get_extension($ext_name);
Expand Down
72 changes: 25 additions & 47 deletions phpBB/phpbb/extension/metadata_manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,29 +93,18 @@ public function get_metadata($element = 'all')
{
case 'all':
default:
// Validate the metadata
if (!$this->validate())
{
return false;
}

$this->validate();
return $this->metadata;
break;

case 'version':
case 'name':
return ($this->validate($element)) ? $this->metadata[$element] : false;
$this->validate($element);
return $this->metadata[$element];
break;

case 'display-name':
if (isset($this->metadata['extra']['display-name']))
{
return $this->metadata['extra']['display-name'];
}
else
{
return ($this->validate('name')) ? $this->metadata['name'] : false;
}
return (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : $this->get_metadata('name');
break;
}
}
Expand Down Expand Up @@ -212,23 +201,8 @@ public function validate($name = 'display')
switch ($name)
{
case 'all':
$this->validate('display');

if (!$this->validate_dir())
{
throw new \phpbb\extension\exception('EXTENSION_DIR_INVALID');
}

if (!$this->validate_require_phpbb())
{
throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('soft-require'));
}

if (!$this->validate_require_php())
{
throw new \phpbb\extension\exception('META_FIELD_NOT_SET', array('require php'));
}
break;
$this->validate_enable();
// no break

case 'display':
foreach ($fields as $field => $data)
Expand Down Expand Up @@ -285,40 +259,43 @@ public function validate_authors()
/**
* This array handles the verification that this extension can be enabled on this board
*
* @return bool True if validation succeeded, False if failed
* @return bool True if validation succeeded, throws an exception if invalid
* @throws \phpbb\extension\exception
*/
public function validate_enable()
{
// Check for valid directory & phpBB, PHP versions
if (!$this->validate_dir() || !$this->validate_require_phpbb() || !$this->validate_require_php())
{
return false;
}

return true;
return $this->validate_dir() && $this->validate_require_phpbb() && $this->validate_require_php();
}

/**
* Validates the most basic directory structure to ensure it follows <vendor>/<ext> convention.
*
* @return boolean True when passes validation
* @return boolean True when passes validation, throws an exception if invalid
* @throws \phpbb\extension\exception
*/
public function validate_dir()
{
return (substr_count($this->ext_name, '/') === 1 && $this->ext_name == $this->get_metadata('name'));
if (substr_count($this->ext_name, '/') !== 1 || $this->ext_name != $this->get_metadata('name'))
{
throw new \phpbb\extension\exception($this->user->lang('EXTENSION_DIR_INVALID'));
}

return true;
}


/**
* Validates the contents of the phpbb requirement field
*
* @return boolean True when passes validation
* @return boolean True when passes validation, throws an exception if invalid
* @throws \phpbb\extension\exception
*/
public function validate_require_phpbb()
{
if (!isset($this->metadata['extra']['soft-require']['phpbb/phpbb']))
{
return false;
throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'soft-require'));
}

return true;
Expand All @@ -327,13 +304,14 @@ public function validate_require_phpbb()
/**
* Validates the contents of the php requirement field
*
* @return boolean True when passes validation
* @return boolean True when passes validation, throws an exception if invalid
* @throws \phpbb\extension\exception
*/
public function validate_require_php()
{
if (!isset($this->metadata['require']['php']))
{
return false;
throw new \phpbb\extension\exception($this->user->lang('META_FIELD_NOT_SET', 'require php'));
}

return true;
Expand All @@ -356,10 +334,10 @@ public function output_template_data(\phpbb\template\template $template)
'META_LICENSE' => $this->metadata['license'],

'META_REQUIRE_PHP' => (isset($this->metadata['require']['php'])) ? $this->metadata['require']['php'] : '',
'META_REQUIRE_PHP_FAIL' => !$this->validate_require_php(),
'META_REQUIRE_PHP_FAIL' => (isset($this->metadata['require']['php'])) ? false : true,

'META_REQUIRE_PHPBB' => (isset($this->metadata['extra']['soft-require']['phpbb/phpbb'])) ? $this->metadata['extra']['soft-require']['phpbb/phpbb'] : '',
'META_REQUIRE_PHPBB_FAIL' => !$this->validate_require_phpbb(),
'META_REQUIRE_PHPBB_FAIL' => (isset($this->metadata['extra']['soft-require']['phpbb/phpbb'])) ? false : true,

'META_DISPLAY_NAME' => (isset($this->metadata['extra']['display-name'])) ? $this->metadata['extra']['display-name'] : '',
));
Expand Down

0 comments on commit adc2ea3

Please sign in to comment.