Skip to content

Conversation

@manuelson
Copy link
Contributor

Description

Magento 2 Store Code validation regex: doesn't support uppercase letters in store code

Fixed Issues (if relevant)

  1. Magento 2 Store Code validation regex: doesn't support uppercase letters in store code #11996: Magento 2 Store Code validation regex: doesn't support uppercase letters in store code

Contribution checklist

  • Pull request has a meaningful description of its purpose
  • All commits are accompanied by meaningful commit messages
  • All new or changed code is covered with unit/integration tests (if applicable)
  • All automated tests passed successfully (all builds on Travis CI are green)

@vkublytskyi vkublytskyi self-assigned this Nov 4, 2017
@vkublytskyi vkublytskyi added this to the November 2017 milestone Nov 4, 2017
@vkublytskyi vkublytskyi added Release Line: 2.2 2.2.x Reproduced on 2.1.x The issue has been reproduced on latest 2.1 release Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release Reproduced on 2.3.x The issue has been reproduced on latest 2.3 release labels Nov 4, 2017
Copy link

@vkublytskyi vkublytskyi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistent behavior please provide also similar changes in the \Magento\Store\Model\ResourceModel\Website::_beforeSave

$validator->addRule($storeLabelRule, 'name');

$storeCodeRule = new \Zend_Validate_Regex('/^[a-z]+[a-z0-9_]*$/');
$storeCodeRule = new \Zend_Validate_Regex('/^[a-zA-Z]+[a-z0-9_]*$/');

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This expression will not allow code with uppercase letter after number or underscore (e.g. a1A). Instead of modifying regexp it's better to apply modifier i (PCRE_CASELESS) to make case-insensitive comparison.

$storeCodeRule->setMessage(
__(
'The store code may contain only letters (a-z), numbers (0-9) or underscore (_),'
'The store code may contain only letters (a-zA-Z), numbers (0-9) or underscore (_),'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do not modify the description as this will break existed translations (will be backward incompatible change). As string does not say "lowercase letters" it is also applicable for updated implementation

@orlangur
Copy link
Contributor

orlangur commented Nov 5, 2017

@vkublytskyi @magento-engcom-team any idea why this is needed? For codes, like store code, website code, attribute code, to keep things consistent and avoid accidental mistake in character case it is much better to have them in strtolower form as to me.

@magento-team magento-team merged commit dbd16d3 into magento:2.2-develop Nov 6, 2017
magento-team pushed a commit that referenced this pull request Nov 6, 2017
…doesn't support uppercase letters in store code #12011
magento-team pushed a commit that referenced this pull request Nov 6, 2017
[EngCom] Public Pull Requests - 2.2-develop
 - MAGETWO-83278: Add validation for number of street lines #12013
 - MAGETWO-83277: [backport 2.2] Magento 2 Store Code validation regex: doesn't support uppercase letters in store code #12011
 - MAGETWO-82991: Product attribute creation page handles Storefront tab visibility wrong #11770
 - MAGETWO-82976: Update wrong layout update xml handle installed in CMS Home Page by d… #11863
 - MAGETWO-82952: Check attribute unique between same fields in magento commerce #11620
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Progress: accept Release Line: 2.2 Reproduced on 2.1.x The issue has been reproduced on latest 2.1 release Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release Reproduced on 2.3.x The issue has been reproduced on latest 2.3 release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants