Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Like to have password_policy(s) be exportable (work with ctools) , so they can be exported/imported and also used with features module.
This is only a start at that and very beta, but working toward making the schema for a policy and role enabling of a policy be exportable.
This allows for storage and editing of a policy from an exportable or feature, but still has some work to make the module read it from the exportable (convert from db calls to using ctools_export_load_object).
Comment | File | Size | Author |
---|---|---|---|
#119 | interdiff-985758-115-119.txt | 1.07 KB | AohRveTPV |
#119 | password_policy-7.x-1.x-features_integration-985758-119.patch | 13.92 KB | AohRveTPV |
| |||
#115 | interdiff-985758-113-115.txt | 2.85 KB | AohRveTPV |
#115 | password_policy-7.x-1.x-features_integration-985758-115.patch | 15.13 KB | AohRveTPV |
| |||
#113 | interdiff-985758-112-113.txt | 1.56 KB | AohRveTPV |
Comments
Comment #1
bcmiller0 CreditAttribution: bcmiller0 commentedmis-placed paren on schema for password_policy_role schema.
Comment #2
bcmiller0 CreditAttribution: bcmiller0 commentedthis is working for us in production as a faux-exportable. Still could use some work, but as a first pass allows the policy to be exported.
Comment #3
deekayen CreditAttribution: deekayen commentedCommitted to master. Marking needs port cause I'm going to try merging in #985374: Drupal 7 Port and might clobber this patch in the process.
Comment #4
deekayen CreditAttribution: deekayen commentedI think I saved it all in conflict resolution.
Comment #6
frankcarey CreditAttribution: frankcarey commentedThat patch only allowed the privacy policy to be exported. For this ticket to be closed in my opinion, we need to put the loading part in here as well. When I export and create a new site, none of the privacy policies show up.
Comment #7
attiks CreditAttribution: attiks commentedsubscribe
Comment #8
erikwebb CreditAttribution: erikwebb commentedYou're right, we're not making use of
hook_default_password_policy()
in the loading process. Unfortunately it looks like this will need some work to refactor the loading operation into something more CTools-friendly.Comment #9
Bußmeyer CreditAttribution: Bußmeyer commentedLoading part is missing in 7.x Version, too: #1250296: Exported Password Policy does not import on install.
Other modules have the same problem: #1357588: follow-up for import (needs to be optionally available when ctools is enabled)
Comment #10
e2thex CreditAttribution: e2thex commentedCan I recommend just changing the pid to a varchar instead of auto inc, and not add a new field. It might make using the ctool load function easier.
I do not see any reason why you need both a id and a name field.
Comment #11
thedavidmeister CreditAttribution: thedavidmeister commentedsubscribe
Comment #12
thedavidmeister CreditAttribution: thedavidmeister commentedHow does this actually work at the moment?
what do I have to do to get the "faux-exportable" functionality working. I put my password policy in a feature but now I can't figure out how to get it to appear on my staging site.
Comment #13
thedavidmeister CreditAttribution: thedavidmeister commentedEven just making a policy, putting it in a feature on my site then clicking "delete" within the same site (should be revert?) doesn't bring back the settings that I saved.
I'm very confused as to how this is supposed to be functioning.
Comment #14
Bußmeyer CreditAttribution: Bußmeyer commentedThe export is only one part of the functionality. With ctools you only have to add an export part to the schema array in hook_schema. For this module the export works.
Know you have to implement the import part. I'm working on a patch for the apachesolr module (#1357588: follow-up for import (needs to be optionally available when ctools is enabled)). It's work in progress. As I said before I think it's the same problem here. Have a look at this and perhaps publish a first patch for this module.
Comment #15
thedavidmeister CreditAttribution: thedavidmeister commentedI've been having a look into the load side of things.
Hoping that replacing the function that loads by id with one that loads by name and uses the ctools load function will work, provided that i turn the object returned by ctools into the array format that the rest of the pp module expects...
Had some limited success using the ctools_export_ui but nothing worst posting here as a patch yet.
Comment #16
erikwebb CreditAttribution: erikwebb commentedThe fundamental change is really to move loading to a machine name-based method. This is probably the fundamental step to integrating CTools.
Comment #17
thedavidmeister CreditAttribution: thedavidmeister commentedyeah, that's basically what i thought, the function that saves the roles associated with each policy needs to be updated to store the machine name of the policy as well as just the pid too.
Comment #18
alfaguru CreditAttribution: alfaguru commentedMaybe I am missing something but why doesn't this module use the Features API?
Comment #19
thedavidmeister CreditAttribution: thedavidmeister commentedBecause nobody has provided a patch for it yet.
Comment #20
e2thex CreditAttribution: e2thex commentedI have work on a rewrite of password policy that does have exportable policies here
http://drupal.org/sandbox/e2thex/1380342
here is the dicusion about making it a 2.x version of password policy
http://drupal.org/node/1380766
Comment #21
erikwebb CreditAttribution: erikwebb commented#1380766: Proposed rewrite using ctools export and plugins
Comment #22
erikwebb CreditAttribution: erikwebb commentedI don't think this is going anywhere, let's focus on full CTools exportables support for 7.x-1.x right now. If someone provides a patch, I'm happy to reopen this issue later.
#1575804: Use the CTools API to load objects
Comment #23
blazindrop CreditAttribution: blazindrop commentedWe need the ability to roll out PP configuration across ~ 26 sites and have started to tinker with this. It looks like the export functionality is semi-working although I'm inclined to think the 'export' schema array needs "primary key" (judging from other modules).
Other parts of the module (namely the policy listing page) needs to be tweaked to fetch configuration from ctools, not the database (if the object is overriden it will be in the database). Is my thinking right?
Willing to work on this for 7.x-1.x but would like some input.
Comment #24
Enxebre CreditAttribution: Enxebre commentedHi,
Although 7.x-2.x has a full ctools plugin aproach it would be great to have an approach to import in 7.x-1.x.
This patch provides an approach to import password_policy component exportables. It has been tested with drush fe, drush fu and drush fr.
Regards
Regards.
Comment #26
Enxebre CreditAttribution: Enxebre commented24: password_policy-features-985758-24.patch queued for re-testing.
Comment #28
Enxebre CreditAttribution: Enxebre commentedHi,
the patch is passing the test in my local environment.
I am no able to figure out why is not passing in drupal.org
Comment #29
Enxebre CreditAttribution: Enxebre commentedComment #30
Enxebre CreditAttribution: Enxebre commentedOk, passing now so ready to test...
Comment #31
alfaguru CreditAttribution: alfaguru commentedHaving done my own testing with this code, I would suggest it makes more sense if going down this route to write your own export code as well. As you are probably aware, although reverting will create the database entries, most of the time you can't revert because the export looks at the default values provided in code and thinks all is well, ignorant of the fact that password_policy only loads from the database.
As noted, it would be possible to re-code password_policy to use ctools load, but in actual fact it's much easier to write your own export. That will also allow you to properly incorporate roles, which are not handled in the above patch. I have some rough-and-ready code, not yet translated to a patch, which includes role settings as part of each policy rather than as a separate export. The revert hook then needs to be tweaked accordingly.
I have pasted in the relevant code below. The export format is based on what ctools generates. It doesn't really need to be so verbose but I started by trying to mimic what ctools does and haven't had time for a tidy-up yet.
Comment #32
drkloc CreditAttribution: drkloc commentedThe codebase has changed from the last patch for features functionality. Attaching an updated version.
Comment #34
AohRveTPV CreditAttribution: AohRveTPV commentedComment #35
matt2000 CreditAttribution: matt2000 commentedIt looks like the former title of this issue got accomplished for 2.0 in #1380766: Proposed rewrite using ctools export and plugins.
Some of us still need this in the fully supported 1.x branch. So I'm attaching a patch that updates the one in #24 above, and adds minimal support for setting the policy's roles. This will almost certainly break if your feature contains more than one policy, or if you use exported roles form another site that do not have matching role IDs.
But it's good enough for us, and might be useful to many others, so I'm sharing.
Comment #36
acbramley CreditAttribution: acbramley commented+1 to get this feature working on 1.x branch, am testing out matt2000's patch now
Comment #37
acbramley CreditAttribution: acbramley commentedAfter removing the old policies from features (wouldn't revert from an empty policy in the db) and re-exporting them I then changed a property of the policy and did a drush fr my_feature and got the following errors:
Will look into it further later this afternoon.
Comment #38
matt2000 CreditAttribution: matt2000 commentedHere's a patch with proper handling for duplicate entries.
Comment #40
matt2000 CreditAttribution: matt2000 commentedHere's a not-so-clearly-broken patch... :-P
Comment #42
acbramley CreditAttribution: acbramley commentedHey, I've started working on a more robust patch myself that doesn't use try/catch, you've also included other changes to the validate function in that patch which don't apply to this issue. I'll post my progress later today but it fits in with your patch and extends it to check the database_policy_roles using a database query much like your password_policy query. I've got it to a point where it doesn't error and it correctly reverts an existing policy, I just want to make it so if the policy doesn't exist at all, it'll create it.
Cheers
Comment #43
matt2000 CreditAttribution: matt2000 commentedFix undefined index...
Comment #44
acbramley CreditAttribution: acbramley commentedOk, please read my comments in #42, I don't think that using a try/catch and checking on an arbitrary error code is the best way to go about this (especially since I'm running postgres). Here's my patch that correctly reverts an existing policy, it will not create the policy if it doesn't exist in the database at all (I'm not sure why and don't have the time to look into it). You've also still included the changes to the validate function.
Patch attached, based of #35.
EDIT: The policy does get correctly imported upon enabling a new feature containing the policy :)
Comment #45
acbramley CreditAttribution: acbramley commentedRemoving the @ symbol in front of the drupal_write_record
Comment #47
eelkeblokI applied #45, but unfortunately it did nothing for the feature I already created with an exported password policy (it had previously removed the policy upon reverting, but I would expect that when this code is complete, it would also detect missing policies (which is probably a fairly common scenario, where new policies may be introdiced in subsequent versions of the same feature).
In fact, I am inclined to call the fact that there is only an export and not an import simply a bug. Without knowing the details of this issue, one might go into Features, find this module allows exporting policies in a Feature, do that, and then spend time figuring out why it isn't working on a new environment (in fact, that is exactly how I came upon this issue). I think the most simple way to fix this bug, for the time being, is to simply remove the export feature again, so as not to cause any more confusion as long as this patch is not complete. I'll open an issue for that to discuss further. Edit: Opened #2401787: Remove Features export while Features import is not available.
Comment #48
eelkeblokComment #49
John Cook CreditAttribution: John Cook at Curve Agency commentedI've had a go at implementing this for features as we needed it for a client.
It only exports the policies themselves as we are already using strongarm to export the system variables.
The patch uses the policy name as the key as this appears to be unique and transferable to different environments.
I've put some helper functions, such as load_by_name() and policy_save(), into
password_policy.features.inc
which could probably be better in different files.Comment #50
John Cook CreditAttribution: John Cook at Curve Agency commentedI forgot the file.
Comment #51
flyke CreditAttribution: flyke commentedI have tried patch #50 from John Cook, but my policy was not exported with features. I could not find it anywhere.
I did use patch #50 ONLY. Do I need this in conjunction with another patch to work ?
Comment #52
mikemadison CreditAttribution: mikemadison at Pacific Northwest National Laboratory commented#50 worked for me. it required a cache clear to have the password policy show up in features, and it exported into the feature.features.inc file.
Comment #53
AohRveTPV CreditAttribution: AohRveTPV commentedThanks for patch in #50, I plan to try this out soon.
I made two minor changes in this patch.
Typo:
Should be "Saves". (Verb in function short descriptions should be third person singular per coding standards.)
Comment #54
AohRveTPV CreditAttribution: AohRveTPV commentedpassword_policy_policy_save()
uses$form_state
, but$form_state
is undefined.Comment #55
AohRveTPV CreditAttribution: AohRveTPV commentedIdeally this would also import/export not just the policies, but also the Password Policy configuration that is stored in database variables? For example, the "Admin (UID=1) password expires." setting?
It is definitely useful for the policies alone--just trying to understand what the end goal is.
Comment #56
valthebald@AohRveTPV: there is no need to export variables, since this task is done by strongarm
Comment #57
AohRveTPV CreditAttribution: AohRveTPV commentedThanks, valthebald. Between Strongarm and this patch, maybe all the Password Policy configuration is covered.
Looking at #53 further, code deduplication is needed between it and the rest of the module. I'm working on it now.
Comment #58
AohRveTPV CreditAttribution: AohRveTPV commentedWant to complete this task first: #2647176: Rename 'policy' field to 'constraints'
The code in the patch is confusing because the constraints of a policy are stored in a field named "policy", so you get confusing naming like
$policy['policy']
.$policy['constraints']
would be much clearer. (This is not the patch's fault; the existing code is this way.)Comment #59
AohRveTPV CreditAttribution: AohRveTPV commentedNew patch to work with changes committed due to #2647176: Rename 'policy' field to 'constraints'.
Still needs work per #57.
Comment #60
AohRveTPV CreditAttribution: AohRveTPV commented.
Comment #61
AohRveTPV CreditAttribution: AohRveTPV commentedCurrently requires first applying patch in #2647176: Rename 'policy' field to 'constraints'.
Changes versus #59:
1. Remove duplication between
password_policy.features.inc:password_policy_save_policy()
andpassword_policy.admin.inc:password_policy_admin_form_submit()
. There is now apassword_policy_save_policy()
function inpassword_policy.module
used by both the Features integration and the "admin form".2. Change
return array('password_policy_features_default_policy' => $code);
toreturn array('password_policy_features_default_policies' => $code);
, because$code
can contain multiple policies.3. Rename
password_policy_policy_load_by_name()
and_password_policy_load_policy_by_name()
functions, which have confusingly similar names. Move them topassword_policy.module
.4. Correct a variable name. (Was
$pid
when it actually contains a policy name.)To-do:
1. Simplify this code:
It is only retrieving policy names, so we can probably use a simpler query.
2. Remove duplication between
_password_policy_load_policy_from_db_by_pid()
and_password_policy_load_policy_from_db_by_name()
.Comment #62
AohRveTPV CreditAttribution: AohRveTPV commentedComment #63
AohRveTPV CreditAttribution: AohRveTPV commentedPlease review/test.
Completed to-dos in #61. There is still some code duplication that I couldn't figure out how to remove simply:
Comment #64
AohRveTPV CreditAttribution: AohRveTPV commentedIn the exported code, the roles for the policy appear like this:
But it should probably just be an indexed array like this:
Comment #65
AohRveTPV CreditAttribution: AohRveTPV commentedChanges:
- Made improvement mentioned in #64.
- Fixed serialization bug.
- Added type hinting for a function.
- Made a function short description consistent with others.
Comment #66
TunprogI think there is a problem with exporting policies weights.
Comment #67
AohRveTPV CreditAttribution: AohRveTPV commentedtunprog, thanks for reporting the problem. I think this patch should fix it, but I have not yet had a chance to test.
password_policy_save_policy()
was simply not saving the weights, so I added to itsdb_update()
anddb_insert()
calls:Comment #68
fubarhouse CreditAttribution: fubarhouse commentedI've done a bit of testing and it seems to be working real well, but I'm really curious when these changes are planned to be released!
Comment #69
AohRveTPV CreditAttribution: AohRveTPV commentedThanks for testing, fubarhouse, and glad it is working.
Will probably commit once there is a little more review/testing. Especially would like to know if the weights are working properly. Then there will be a development release with the feature.
There are no firm plans for when the next stable release will be made. I think it might be good to wait a month after this feature is added at least, so there is more chance for testing. If the Features integration does not work properly, password policies could be altered after export/import in a way that affects security. For instance, if a constraint value were lost, that could be bad.
Comment #70
TunprogI tested patch #67 and it fixes the policies weights export issue.
thank you.
Comment #71
marlonleandropereira CreditAttribution: marlonleandropereira commentedAbout the commit below:Now the password_policy-7.x-1.x-features_integration-985758-67.patch (#67) is broken when I try to enable my custom feature.
The root cause is rename the field 'constraints' to 'policy', because in the insert is not changed.
Comment #72
marlonleandropereira CreditAttribution: marlonleandropereira at CI&T commentedFix:
- Rename 'constraints' to 'policy' in password_policy_save_policy function (insert and update);
- Remove unnecessary serialize in password_policy_save_policy function (insert and update);
Comment #74
marlonleandropereira CreditAttribution: marlonleandropereira at CI&T commentedSorry about my last patch. I was checking with the stable version.
* The patch #72 is merged with stable version.
* I tested the patch #67 and is working normally.
Comment #75
loopduplicateSetting back to needs review. To be clear, #67 is the patch to test against.
Comment #76
marlonleandropereira CreditAttribution: marlonleandropereira as a volunteer and at CI&T commentedIssues:
- When the user try update or insert some password_policy with same name, the page broken.
- When is inserted new password_policy, not exist "enable" variable in array, only when imported by features.
Comment #77
marlonleandropereira CreditAttribution: marlonleandropereira as a volunteer and at CI&T commentedFixes:
- When the user try update or insert some password_policy with same name, the page broken.
- When is inserted new password_policy, not exist "enable" variable in array, only when imported by features.
Comment #79
marlonleandropereira CreditAttribution: marlonleandropereira as a volunteer and at CI&T commentedComment #80
AohRveTPV CreditAttribution: AohRveTPV commentedThanks, marlonleandropereira, for reporting this problem. It seems to be unrelated to this feature request, because it occurs without any patch applied. So I opened a separate issue for the bug:
#2677500: Adding policy with same name as existing policy causes error
Strangely, comments #77 and #79 disappeared. Perhaps drupal.org thought it was spam since you are an unconfirmed user. So, please repost your patch.
Comment #81
AohRveTPV CreditAttribution: AohRveTPV commentedI can't reproduce this. With the patch in #67, when a password policy is added, enabled is set to 0 by
_password_policy_admin_form_save_policy()
.Are you sure this is a problem? Could you give steps for reproducing it?
Comment #82
AohRveTPV CreditAttribution: AohRveTPV commentedSetting back to "Needs review" as I do not see any problems with #67.
There is the potential problem discussed in #81, but I cannot reproduce it.
Comment #83
fubarhouse CreditAttribution: fubarhouse commentedMyself and my team are rather eager to see this functionality come to light - what can I do to help push this along?
Comment #84
eelkeblokThe status of the issue is "needs review", so if you can review the patch (most recent one is #67
, make sure the fix for #2647176: Rename 'policy' field to 'constraints' is applied), that would be great. If you have and don't find any problems, you can set it to Reviewed and tested by the community (I think that should be OK given that the patch already went through various hands and has been reviewed by others too). Another option is to update the issue summary, outlining this (use the issue summary template as a starting point).This patch depending #2647176: Rename 'policy' field to 'constraints' is important.**Edit:** Actually, #2647176: Rename 'policy' field to 'constraints' has already been committed, so you can forget most of what I said about it.
Comment #85
LiamPower CreditAttribution: LiamPower at Reading Room commentedWorked for me against the latest dev version.
Comment #86
fubarhouse CreditAttribution: fubarhouse commentedJust gotten around to testing it, and all good.
Cannot replicate #67.
I see Liam has already provided feedback, so thanks mate!
Now we wait for a release :)
Comment #87
AohRveTPV CreditAttribution: AohRveTPV commentedWill commit soon, thanks.
Comment #88
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedHi. There is reworked version from #67. Please can you review it?
It fixes broken resaving of existing policies. And also there are some changes in features_export hook.
Comment #89
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedComment #92
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedUpdated previous version of patch: now it add to dependencies all modules that contains according to policies roles.
Comment #95
Anonymous (not verified) CreditAttribution: Anonymous commentedWhen I apply #92, it chops off the end of the password_policy_features_rebuild() function.
Comment #96
Anonymous (not verified) CreditAttribution: Anonymous commented#88 looks good however.
Comment #97
Anonymous (not verified) CreditAttribution: Anonymous commentedComment #98
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedThank you for the catch, @vilepickle.
Looks like something gonna wrong when patch was created.
There is reworked patch from #92 with correct password_policy_features_rebuild() function.
Also interdiff attached.
Comment #99
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedSorry, upload interdiff in wrong format.
Updated.
Comment #101
Anonymous (not verified) CreditAttribution: Anonymous commentedI'm guessing the test that's failing is actually a valid thing that should be fixed as well in the patch, it looks like something that happened as a result of the changes.
Comment #102
Anonymous (not verified) CreditAttribution: Anonymous commentedWill move to needs work until that is passing and then based on prior discussion this looks pretty good!
Comment #103
Anonymous (not verified) CreditAttribution: Anonymous commentedComment #104
david.lukac CreditAttribution: david.lukac at i-KOS commentedComment #105
kristiaanvandeneyndePatch from #98 throws notices:
Comment #106
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commentedHello @kristiaanvandeneynde, I'll check it and try to fix failing tests.
Comment #107
IRuslan CreditAttribution: IRuslan as a volunteer and at DrupalJedi commentedFor me, last patch is not applicable to last public release of the module.
Comment #108
koosvdkolk CreditAttribution: koosvdkolk commented+1
Is there anything I could help speeding up the process?
Comment #109
Matt V. CreditAttribution: Matt V. as a volunteer commented@koosvdkolk,
Based on the recent comments, one way to speed up the process would be to update the patch so that it applies to the latest dev release and so that the tests pass.
Comment #110
AohRveTPV CreditAttribution: AohRveTPV commentedThe tests could have been failing due to an unrelated issue that is now fixed: #2857748: Password expiration tests do not reliably pass.
Thanks for the continued work on the patch. It sounds like the notices reported in #105 need investigation.
Comment #111
AohRveTPV CreditAttribution: AohRveTPV commented#98 has 4 coding standards errors and 3 Drupal practices warnings per Coder. Needs a little work.
Comment #112
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commented@AohRveTPV thank you for your response
Fixed code standard errors.
About strange notices reported in #105. I've checked code and looks like that the only situation when these notices can be generated is when user have no 'constraints' column in {password_policy} table. (This true only for stable version of module or if updates from dev version weren't executed).
Comment #113
AohRveTPV CreditAttribution: AohRveTPV commentedCoder 8.x-2.x still found some issues. Corrected in this patch.
Comment #114
AohRveTPV CreditAttribution: AohRveTPV commentedsumthief, could you explain what the following code is doing, particularly the else block:
I have an idea what the else block is doing but am not sure. Thank you.
Comment #115
AohRveTPV CreditAttribution: AohRveTPV commentedI factored some code into separate functions, added some inline comments, and clarified some variable names. No functional changes, but I think this makes the code a bit easier to read/understand.
Re the variable name changes: "save" was being used in two senses in the same function. In one sense, referring to exported policies as "saved policies". In the other,
password_policy_save_policy()
, which stores a policy to the database.Comment #116
sumthief CreditAttribution: sumthief as a volunteer and at DrupalJedi commented@AohRveTPV,
As I remember I've faced with problem that generated feature didn't include other features (exporting roles associated with selected policies) as dependencies.
Comment #117
AohRveTPV CreditAttribution: AohRveTPV commentedThanks, but I have to admit I am still hazy on what that else block does.
For the sake of testing, what can I do in Drupal to cause the else block to be executed?
Comment #118
AohRveTPV CreditAttribution: AohRveTPV commentedMaybe I understand now. The roles themselves may have dependencies, so the else block in #114 exports the dependencies of the roles.
This seems like an infinite problem: What if the dependencies of the roles themselves have dependencies? I'm not sure why Password Policy should concern itself with dependencies beyond its immediate dependencies.
Please correct me if I'm misunderstanding. I have limited experience with Features.
Comment #119
AohRveTPV CreditAttribution: AohRveTPV commentedPlease review and test. It is important that this patch be tested, because export/import of password policies not working correctly has security implications.
Patch removes the aforementioned else block and adds an inline comment.
If the else block is needed, someone will have a problem with this patch and can give clarity to why it is needed.
Comment #120
fubarhouse CreditAttribution: fubarhouse commentedI'll try to get some testing in tonight, I would've assumed this would have progressed by now.
Is there anything blocking this from release other than additional testing?
Comment #121
AohRveTPV CreditAttribution: AohRveTPV commentedThanks.
It just needs testing. #119 hasn't gotten any feedback. It seems important that this be tested before release because if it doesn't work properly, sites could be made less secure.
Also unsure about the else block mentioned in #114, which I removed in #119.
Comment #122
RoSk0Patch in #119 works as expected: import/export tested.
Tested with the latest version of Features and Password policy itself.
Comment #124
AohRveTPV CreditAttribution: AohRveTPV commentedPlease review/test the Features functionality now in 7.x-1.x-dev if you haven't already, and report back whether it works. I will release only once it is tested more and some time has passed.
Thanks, RoSk0, for testing #119.
I credited those who provided patches building on John Cook's new patch in #50. Please let me know if I missed crediting anyone. Thanks to everyone who has reviewed/tested iterations of that patch.
Comment #125
fubarhouse CreditAttribution: fubarhouse commentedOut of the tests I've performed on #119, it works flawlessly.
Comment #126
AohRveTPV CreditAttribution: AohRveTPV commentedThanks, will plan to release in a week or two:
#2869115: Release 7.x-1.13