This module replaces the core URL language negotiation plug-in. It provides domain and prefix negotiation at the same time as opposed to the core one which only allows only one of the two. This is done by first matching on domain then on prefix. It also allows for multiple prefixes.

Additionally it provides an optional cross domain automatic authentication for multi-domain sites. This is done by short lived token generation that gets appended to navigation. A JS script attaches click listeners to links and when fired it prevent automatic navigation, requests token generation and then manually navigates to the URL + token query. All these authentications can then be logged out just by logging out on one domain, as connected sessions get stored.

Configuration page

  • path: Administration > Configuration > Regional and language > Languages > Detection and Selection > Concurrent URL (configure)
  • url path: /admin/config/regional/language/detection/concurrent-url

Project URL

Git clone

git clone --branch 8.x-1.x https://git.drupal.org/sandbox/Fodor.Zoltan/2842690.git concurrent_url_negotiation

Comments

_Archy_ created an issue. See original summary.

PA robot’s picture

We are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)

Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).

I'm a robot and this is an automated message from Project Applications Scraper.

vlad.dancer’s picture

Status: Needs review » Reviewed & tested by the community

Hi, _Archy_
Thanks for the useful multilingual module!

Here is my review:

Automated Review

Review of the 8.x-1.x branch (commit 069f5af):

No automated test cases were found, did you consider writing Simpletests or PHPUnit tests? This is not a requirement but encouraged for professional software development.
This automated report was generated with PAReview.sh, your friendly project application review script. You can also use the online version to check your project. You have to get a review bonus to get a review from me.

see https://pareview.sh/node/792

Note that perfect adherence to Drupal Coding Standard is NOT a reason to block an application, except for total disregard of them. However, modules should follow them as closely as possible.

Manual Review

Individual user account
[Yes: Follows] the guidelines for individual user accounts.
No duplication
[Yes: Does not cause] module duplication and/or fragmentation.
Master Branch
[Yes: Follows] the guidelines for master branch.
Licensing
[Yes: Follows] the licensing requirements.
3rd party assets/code
[Yes: Follows] the guidelines for 3rd party assets/code.
README.txt/README.md
[Yes: Follows] the guidelines for in-project documentation and/or the README Template.
Code long/complex enough for review
[Yes: Follows] the guidelines for project length and complexity.
Secure code
[Yes: Meets the security requirements.]
Coding style & Drupal API usage
(*) Major finding, needs work
  1. None
(+) Release blocker
  1. missed library dependency for drupal lib.
    Add drupal as dependency here:
                    dependecies:
                    - core/jquery
                
  2. Missed js dependency drupalSettings in cross_auth.js:
                    (function ($, Drupal) {
                    ....
                    drupalSettings.crossAuth
                    ....
                    })(jQuery, Drupal);
                
  3. Use dependency injection in CrossTokenListener
    Add argument concurrent_url_negotiation.cross_auth service definition
Just a recommendations
  1. None.

The starred items (*) are fairly big issues and warrant going back to Needs Work. Items marked with a plus sign (+) are important and should be addressed before a stable project release. The rest of the comments in the code walkthrough are recommendations.

If added, please don't remove the security tag, we keep that for statistics and to show examples of security problems.

This review uses the Project Application Review Template.

BTW You've done really decent module!

_Archy_’s picture

Hi, @vlad.dancer
Nice to see such fast review, so thanks.
I have fixed the release blockers. First one the miss-type in "dependecies". The second one: added the drupalSettings as parameter in the anonymous wrapper function. Last: moved the cross auth service to be injected in the listener.

vlad.dancer’s picture

@_Archy_, all is ok now, but you've missed to add drupal library as a dependency

dependencies:
     - core/jquery
+    - core/drupal
     - core/drupalSettings
_Archy_’s picture

Funny how I saw the miss-type but didn't quite understand what you were telling :D. Added.

apaderno’s picture

Assigned: Unassigned » apaderno
Status: Reviewed & tested by the community » Fixed

Thank you for your contribution!
I am going to update your account so you can opt into security advisory coverage now.
These are some recommended readings to help with excellent maintainership:

You can find more contributors chatting on the IRC #drupal-contribute channel. So, come hang out and stay involved.
Thank you, also, for your patience with the review process.
Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.

I thank all the dedicated reviewers as well.

apaderno’s picture

_Archy_’s picture

Thank you a lot ! :)

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.