Password field required compatibility?

Recommended Posts

Is the password field compatible with the "required" option?

I only ask because if I make it a required option when editing a page if I haven't changed the password, it throws a required error. Obviously I'd like for the user to be able to leave it blank and leave the password how it is.

The problem is if I don't make it required then I may end up without a password at all.

Is this something I should look to triggering via a module?


Share this post

Link to post
Share on other sites

Hi onjegolders,

Are you working with the admin backend? I gave your case a try with the API:

$page->requiredField = "";

Nothing happened. Literally nothing: no errors, no field update.

Share this post

Link to post
Share on other sites

Thanks Valery, yes this is in the backend. On page save, the required error still gets called even if previously a password has been set. This must be because the password field is empty and it's only if a user fills it in that it gets reset.

Share this post

Link to post
Share on other sites

I took a peek at the system password field settings just out of curiosity.

It is not required.

And it's actually possible to create a user without a password. But they won't be able to log in: PW would silently redirect them back to the login page.

Share this post

Link to post
Share on other sites

Thanks Valery. 

I think I should specify, I'm adding the password field to a different page and adding the required value myself in the file settings.

Essentially it's so that my client can create a "member" while also creating a user without having to also remember to go to Access->Users and add one there.

Ideally the password field would be required initially when they add the page but perhaps thereafter not required. Either that or the value of a password field on the edit page template should not be empty.

Share this post

Link to post
Share on other sites

If all of this happens in the backend and the field is "required", the PW backend will not allow to blank it. You would have to write your own template for it to work. You won't even need the "required" option then.

Sorry if that's a poor solution. Maybe someone else can come up with a bright idea?

  • Like 1

Share this post

Link to post
Share on other sites

Thanks anyway Valery, it's useful having different thoughts on it!

I just imagined that as it's part of the core there must be some expected behaviour in this scenario.

Share this post

Link to post
Share on other sites

The only time you'd want to make the password field required is when using it for a new user form or something like that. Otherwise, I'd suggest not making it a required field unless you want people to change their password every time. I'm not positive about what your context is in this case, but because the built-in password field is designed for a very specific purpose, you might just want to use your own markup for a password field. Or, if using an InputfieldForm, you can use InputfieldText and change the type attribute to 'password':

$pass = $modules->get('InputfieldText'); 
$pass->attr('type', 'password'); 
$pass->attr('name', 'pass'); 
$pass->label = 'Your password';
$pass->required = (bool) whateverConditionYouWant(); 

Share this post

Link to post
Share on other sites

Thanks Ryan,

The context would be, like you said, a first time adding of a password for a user. Except a page (student) is being mapped to a user. So if the admin wants to update a student's password, they could also do it from the student page.

Obviously making it required will be unhelpful because it's only required once, unless the password field had some way of knowing that it hadn't been overriden this time but that it was set and not "blank".

I think failing that, the best way is for me to make it not required and the admin will have to remember if someone can't login, it's probably because they failed to assign them a password.

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 ridgedale
      Reference: PW 3.0.111 and uikit3 based site using the Regular-Master profile.
      I am trying to add a field that provides a dropdown menu but there are no Options or Selector(s) type available - see attached image of field types available.
      The following reference under the docs does not appear to be applicable any more:
      I can't see how to achieve this. Any assistance would be appreciated.

    • By awebcreature
      Hello there
      I need a field with realtime percent calculation (without page save)  with values from other fields in admin template. I think about jQuery with onChange methods on corresponding fields but this is not clear for me how to do this in module. Any help with some advice or example will be highly appreciated! 
      Thanks in advance! 
    • By Thomas Diroll
      Hi guys I'm relatively new to PW and just finished developing a page for a client. I was able to include all necessary functionality using the core fieldtypes but now I it seems that I need to extend them with a custom one. What I need is a simple button, that copies the absolute url (frontend not PW-backend) of the page which is currently edited to the clipboard. As this feature is only needed inside a specific template, I tend to use a custom fieldtype which provides this feature. I've been looking inside the core modules code (eg. FieldtypeCheckbox.module) but I don't really get the structure of it and how its rendered to the admin page. I also didn't find a lot of tutorials covering custom fieldtypes.
      Maybe some of you could give me some tips on how to write a basic custom fieldtype that renders a button which copies the value of
      page->httpUrl() to the clipboard using JS. Thanks!
    • By Sten
      I have a lot of difficulties with getting a field value.
      First I created a template, inside I created several fields
      two fields are a dropdown select box So I have a value and a label for each line.
      Then I want to get the field value in _init.php or in the template to display it. How can I get the value of a field for the page ? I need to understand the flow through which data goes.
      Could someone help me ?
      Thank you
    • By chcs
      After running this code in my module's __install() the template_id is not set. Any ideas why?  (The export contents from the template created and the one that I built with Admin are the same. Both exports have the template_id is set to mm_state. When I go to edit the field in Admin, the template is not showing on the Input tab and it doesn't show the template title on a page using the template that uses this field. Using processwire 3.0.98)

      // mm_state
      $field = $this->fields->get('mm_state');
      if (!@$field->id) $field = new Field();
      $field->type = $this->modules->get("FieldtypePage");
      $field->name = 'mm_state';
      $field->label = 'State';
      $field->derefAsPage = 2;
      $field->inputfield = "InputfieldSelect";
      $field->labelFieldName = 'title';
      $field->template_id = 'mm_state';
      $field->columnWidth = 100;
      $field->required = true;