[x] Create new columns in the capabilities table in database: password_policy_max_characters, password_policy_min_characters, password_policy_min_digits, password_policy_min_lowercase_characters, password_policy_min_special_characters and password_policy_min_uppercase_characters
[x] Add new properties for these new columns in CapabilityResponse and its toRemoteCapability() method
[x] Add new properties in RemoteCapability
[x] Once we already have them in database, change UI of the password dialog and add each of the messages with the criteria: "At least X characters long", etc
[x] Show each criteria message only if value in database of the corresponding criteria is different to null
[x] Add listeners for each change in the EditText for the password input: everytime the user writes or deletes a character, we need to update which criteria are fulfilled
[x] Enable "Save" button just when all the criteria are fulfilled
[x] Improve criteria messages and show them in red when they are not fulfilled, and in green when they are (just like in the web screenshot)
[x] Create or adapt the necessary tests
[x] Code review and apply changes requested
[x] Design test plan
[x] QA
[ ] Merge branch feature/shares_password_policy_capabilities into master
Take a look how the web works when the password policy must be set:
https://github.com/owncloud/android/assets/14894746/979db7b0-137e-44c6-84dd-effe645ef96f
this would be cool to be implemented as well. We can take advantage of the capabilities information
to handle this.
Putting the focus in oCIS, if oC10 is straight forward it will be also ok.
INFO: https://github.com/owncloud/ocis/tree/master/services/frontend#the-password-policy
TASKS
capabilities
table in database:password_policy_max_characters
,password_policy_min_characters
,password_policy_min_digits
,password_policy_min_lowercase_characters
,password_policy_min_special_characters
andpassword_policy_min_uppercase_characters
CapabilityResponse
and itstoRemoteCapability()
methodRemoteCapability
EditText
for the password input: everytime the user writes or deletes a character, we need to update which criteria are fulfilled