Jump to content
Nils Wiere

Add language permission for non-superusers

Recommended Posts

Hello, I’d like to give a non-superuser the possibility to add new languages and thought this is done via the lang-edit permission. However, assigning this permission to the role didn’t do the trick. There’s still no option to create a new language under Setup > Languages.

Do you have any idea on how to provide the permission to add new languages?

Share this post


Link to post
Share on other sites

This is because non-superusers aren’t allowed to add children under /processwire/setup/languages. First, because /processwire/setup/languages is of template admin, you would need to open the template settings for admin and check the box “add children” in the access tab. Then you also need to give them permission to create pages of template language, so in the language template, enable access control and check “edit pages” and “create pages”.

This isn’t a very nice solution, because you have to change access for all admin pages. I suppose it would be neat if a “lang-add” permission came with the language support module. Alternatively, you can probably write a hook to add a button somewhere that creates a language and bypasses those permission checks.

  • Like 1

Share this post


Link to post
Share on other sites

@Jan Romero Thanks a lot for helping out. That's how it works!

I already adjusted the access rights for the languages template, but didn't know that it acts as child of the admin template…

I also think a dedicated permission would be nice here.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By DV-JF
      Hey girls and guys,
      I'll want to open this thread in order to discuss a main problem I've run into with following setup:
       
      I'm maintaining a site where different URLs are directed to the same folder. In site/ready.php the $user->language is set based on the $config->httpHost
      <?php /* Set language based on the domain and user is not logged in */ /* Slovenian */ if( $config->httpHost == "www.domain.si" || $config->httpHost == "domain.si" || $config->httpHost == "domain.si.local") { if (!($user->isSuperuser())) $user->language = $languages->get('si'); } /* German */ elseif( $config->httpHost == "www.domain.at" || $config->httpHost == "domain.at" || $config->httpHost == "domain.at.local" || $config->httpHost == "domain.ch" || $config->httpHost == "www.domain.ch" || $config->httpHost == "domain.de" || $config->httpHost == "www.domain.de") { if (!($user->isSuperuser())) $user->language = $languages->get('default'); } /* Croatian */ elseif( $config->httpHost == "www.domain.hr" || $config->httpHost == "domain.hr" || $config->httpHost == "domain.hr.local") { if (!($user->isSuperuser())) $user->language = $languages->get('hr'); } /* English */ elseif( $config->httpHost == "www.domain.eu" || $config->httpHost == "domain.eu" || $config->httpHost == "domain.eu.local") { if (!($user->isSuperuser())) $user->language = $languages->get('en'); } /* Italian */ elseif( $config->httpHost == "www.domain.it" || $config->httpHost == "domain.it" || $config->httpHost == "domain.it.local") { if (!($user->isSuperuser())) $user->language = $languages->get('it'); } The homepage (id=1) has following settings:

      As you can see German (Deutsch) is set as default language. Everything is working nice and fine and I'm really happy with this kind of setup but now there are some new requirements, which causes me quite a headache :
      I've to add some pages only in one or two languages (they should not be present in German) I've to create some editor roles that are allowed to only edit (can be done with https://processwire.com/docs/user-access/permissions/#multi-language-page-edit-permissions) & add pages to their specific language. What I've found out so far:
      The default language can't be disabled and must always be present (though this would be in my eyes the easiest solution) Creating my own "language select field" - example here: won't work in this case because I've to rely on the native languages in order to setup the right permissions for editors. There seems to be some solutionsbut I think these won't match for me because I've to think about handling editors and permissions, too. After searching and searching, scratching my head and searching and searching again, the only possibility that comes to my mind is to add another language for German and assign this language to the specific URL's instead of the default language.
      The advantages with this solution for me:
      I could activate or deactivate any language on any page Editors which are allowed to add pages can get the permission page-edit-lang-default without affecting the German pages. The disadvantages:
      All multi-language-fields will have an empty tab for the default language - this may irritate editors a lot Seems to me like a lot of work to do because I've to copy the language field nearly for 1000 pages/repeaters (maybe I'll find an SQL query) My questions:
      How would you handle this task? Could my setup be optimized in a completely different way? If I go for my solution (adding another language for German) would it be possible to hide the language tab for default language in any way?  If some points aren't clear enough please don't hesitate to ask.
      Many greets...
    • By Lmwt
      Hi there,
      using the multi-language site-profile, yesterday I moved all my files into a directory so that the home page is not displayed on my domain url, then I moved them back to the root directory. Maybe I made a mistake while moving the files, but since then I got a "403" error message:
      "Forbidden You don't have permission to access this resource."
      and  these new files appeared in FileZilla as shown on the picture : .xsessions.error, etc.
      The browser show the connection as "not secure" even after clearing the browser data.
      Help!
      Thanks in advance

    • By iNoize
      Hello, 
      i need help i dont know what happen but i get this error
      Its an multipage installation with one core and many languages. 
      EN Version is ok but the DE version always error 500 also if i try to login to the backend.
      Exception: You do not have permission to execute this module - ProcessPageView (in /homepages/17/pathtosite/wire/core/Modules.php line 1225
      Errorlog: 
      2016-11-26 11:13:37    guest   http://de.mypage.com/?/  Error:     Exception: You do not have permission to execute this module - ProcessPageView (in /homepages/17/pathtosite/wire/core/Modules.php line 1225)
      2016-11-26 11:13:57    guest   http://de.mypage.com/?/  Error:     Exception: You do not have permission to execute this module - ProcessPageView (in /homepages/17/pathtosite/wire/core/Modules.php line 1225)  #0 /homepages/17/pathtosite/wire/core/Modules.php(1130): ProcessWire\Modules->getModule('ProcessPageView') #1 /homepages/17/pathtosite/index.php(53): ProcessWire\Modules->get('ProcessPageView') #2 {main}
      2016-11-26 11:14:34    guest   http://de.mypage.com/?/  Error:     Exception: You do not have permission to execute this module - ProcessPageView (in /homepages/17/pathtosite/wire/core/Modules.php line 1225)  #0 /homepages/17/pathtosite/wire/core/Modules.php(1130): ProcessWire\Modules->getModule('ProcessPageView') #1 /homepages/17/pathtosite/index.php(53): ProcessWire\Modules->get('ProcessPageView') #2 {main}
      2016-11-26 11:14:51    guest   http://de.mypage.com/?/  Error:     Exception: You do not have permission to execute this module - ProcessPageView (in /homepages/17/pathtosite/wire/core/Modules.php line 1225)
       
       
       
    • By suntrop
      On my site I am using the code from this post
      https://processwire.com/talk/topic/5082-default-language-per-domain-language-switcher-not-working/
      All homepages look fine and return the corresponding translation. But all links are still pointing to the default host not the one I am currently visiting.
      Is there any way I can strip out the host or let PW know to use the host the user is on?
×
×
  • Create New...