#50315 Issue 50041 - Add the rest UI Plugin tabs - Part 1
Closed by spichugi. Opened by spichugi.
spichugi/389-ds-base plugin_ui_the_rest  into  master

Download 50315.patch

Description: Add UI plugin tabs for accountPolicy, attributeUniqueness,
linkedAttributes, referentialIntegrity, retroChangelog, rootDNAccessControl
and winsync.
Reorder the tabs to make the usage more intuitive.
Fix Attribute Uniqueness logging level issue.
Move pluginTable.jsx content to pluginTables.jsx.
Fix a small 'help' typo in dbtasks.py.

https://pagure.io/389-ds-base/issue/50041

Reviewed by: ?

Initial code review looks good, I'll be testing the UI later today....

rebased onto 59b8a5bd8d6fffc9fcd897e642df1ead34912561

Console error on initial load:

checkPropTypes.js:19 Warning: Failed prop type: Invalid prop `selected` supplied to `TypeaheadContainer(WrappedTypeahead)`.
    in TypeaheadContainer(WrappedTypeahead) (created by OnClickOutside(TypeaheadContainer(WrappedTypeahead)))
    in OnClickOutside(TypeaheadContainer(WrappedTypeahead)) (created by RetroChangelog)
    in div (created by Col)
    in Col (created by RetroChangelog)
    in div (created by FormGroup)
    in FormGroup (created by RetroChangelog)
    in form (created by Form)
    in Form (created by RetroChangelog)
    in div (created by Col)
    in Col (created by RetroChangelog)
    in div (created by Row)
    in Row (created by RetroChangelog)
    in div (created by PluginBasicConfig)
    in PluginBasicConfig (created by RetroChangelog)
    in div (created by RetroChangelog)
    in RetroChangelog (created by Plugins)
    in div (created by TabPane)
    in TabPane (created by Plugins)
    in div (created by TabContent)
    in TabContent (created by Plugins)
    in div (created by Col)
    in Col (created by Plugins)
    in div (created by Row)
    in Row (created by Plugins)
    in TabContainer (created by Uncontrolled(TabContainer))
    in Uncontrolled(TabContainer) (created by Plugins)
    in div (created by Plugins)
    in Plugins

I would also like to see more "title"s added to config setting rows to describe what the setting does, and the attribute it updates. I need to work on this too, but for example the RI plugin, it's not clear what "Container Scope" is. I was doing this for most config settings, and we should keep doing it as its adds a nice user experience.

1 new commit added

  • Add titles and fix TypeAhead element

The issues are fixed. Please, check.

Trying to update the config of Root DN access control plugin fails saying no update occurred.

Adding new attribute uniquness config entgry generates console error:

checkPropTypes.js:19 Warning: Failed prop type: Invalid prop `selected` supplied to `TypeaheadContainer(WrappedTypeahead)`.
    in TypeaheadContainer(WrappedTypeahead) (created by OnClickOutside(TypeaheadContainer(WrappedTypeahead)))
    in OnClickOutside(TypeaheadContainer(WrappedTypeahead)) (created by AttributeUniqueness)
    in div (created by Col)
    in Col (created by AttributeUniqueness)
    in div (created by FormGroup)
    in FormGroup (created by AttributeUniqueness)
    in form (created by Form)
    in Form (created by AttributeUniqueness)
    in div (created by Col)
    in Col (created by AttributeUniqueness)
    in div (created by Row)
    in Row (created by AttributeUniqueness)
    in div (created by ModalBody)
    in ModalBody (created by AttributeUniqueness)
    in div (created by AttributeUniqueness)
    in div (created by CustomModalDialog)
    in div (created by CustomModalDialog)
    in div (created by CustomModalDialog)
    in CustomModalDialog (created by Modal)
    in Transition (created by Fade)
    in Fade (created by DialogTransition)
    in DialogTransition (created by Modal)
    in RefHolder (created by Modal)
    in div (created by Modal)
    in Portal (created by Modal)
    in Modal (created by Modal)
    in Modal (created by AttributeUniqueness)
    in div (created by AttributeUniqueness)
    in AttributeUniqueness (created by Plugins)
    in div (created by TabPane)
    in TabPane (created by Plugins)
    in div (created by TabContent)
    in TabContent (created by Plugins)
    in div (created by Col)
    in Col (created by Plugins)
    in div (created by Row)
    in Row (created by Plugins)
    in TabContainer (created by Uncontrolled(TabContainer))
    in Uncontrolled(TabContainer) (created by Plugins)
    in div (created by Plugins)
    in Plugins

Then trying to edit the new attribute uniqueness plugin doesn't pull in the current config values. The form is empty except for the name, but at least the attribute field is not loaded - maybe others too?

Managed entries, the "Entry scope" input filed is not aligned

LInked attrs. When creating config, could the form use typeAhead or a dropdown list for some of those fields?

Posix Winsync. There is an option to perform a memberOf Task - that probably should not be there

RI plugin, the title actually prints to the page for the update interval. Also changing the member attributes results in a CLI usage error:

usage: dsconf [-h] [-v] [-D BINDDN] [-w BINDPW] [-W] [-y PWDFILE] [-b BASEDN]
              [-Z] [-j]
              instance
              {backend,backup,chaining,config,directory_manager,healthcheck,monitor,plugin,pwpolicy,localpwp,replication,repl-agmt,repl-winsync-agmt,repl-tasks,sasl,schema}
              ...
dsconf: error: unrecognized arguments: --container_scope delete error during referential integrity postoperation modification

Probably shouldn't be an underscore?

MemberOf plugin: the "Auto Add OC" field should be a typeAhead of all the objectlcasses

That should keep you busy for a little while :-)

1 new commit added

  • Fix few more issues

Trying to update the config of Root DN access control plugin fails saying no update occurred.

Works for me... Probably, you haven't added the new element to the TypeAhead type (after typing, you should click on the item and it will add it. It is how the component was designed...)

Adding new attribute uniquness config entgry generates console error:

Fixed.

Then trying to edit the new attribute uniqueness plugin doesn't pull in the current config values. The form is empty except for the name, but at least the attribute field is not loaded - maybe others too?

Weird... It works for me. Maybe fixing the previous error has fixed this one. Please check.

Managed entries, the "Entry scope" input filed is not aligned

Fixed.

LInked attrs. When creating config, could the form use typeAhead or a dropdown list for some of those fields?

Good catch!

Posix Winsync. There is an option to perform a memberOf Task - that probably should not be there

Do you mean a checkbox?
It is posixWinsyncCreateMemberOfTask... It is listed in our guide.
https://access.redhat.com/documentation/en-us/red_hat_directory_server/10/html-single/configuration_command_and_file_reference/#posixWinsyncCreateMemberOfTask

RI plugin, the title actually prints to the page for the update interval. Also changing the member attributes results in a CLI usage error:
Probably shouldn't be an underscore?

Yeah, I fixed in my next PR but I will move the fix here. Makes more sense.

MemberOf plugin: the "Auto Add OC" field should be a typeAhead of all the objectlcasses

Fixed. :)

That should keep you busy for a little while :-)

Trying to update the config of Root DN access control plugin fails saying no update occurred.

Works for me... Probably, you haven't added the new element to the TypeAhead type (after typing, you should click on the item and it will add it. It is how the component was designed...)

I was updating an allowed (or denied) IP address, and it was ignoring the change on save

Trying to update the config of Root DN access control plugin fails saying no update occurred.
Works for me... Probably, you haven't added the new element to the TypeAhead type (after typing, you should click on the item and it will add it. It is how the component was designed...)

I was updating an allowed (or denied) IP address, and it was ignoring the change on save

Okay this is working fine.

Creating shared config entry for account policy plugin should use typeAhead for attribute selection for all fields, The rest of the plugins look good.

Note - RI plugin, and some other plugins can have shared config entries as well. Maybe those could be added later if you want.

rebased onto 2693bd07f3a3ed6ceb2fd05e73fb0327d2c9f46c

Okay this is working fine.
Creating shared config entry for account policy plugin should use typeAhead for attribute selection for all fields, The rest of the plugins look good.

Fixed. Please, have one final look and I'll merge.

Note - RI plugin, and some other plugins can have shared config entries as well. Maybe those could be added later if you want.

I was using the admin guide mostly for the UI design... And it has its issues.
But now, after a closer look at the source code, I see what you mean.

We have a really weird situation in the docs and in the existing plugin structure.

  • Some plugins have explicit chapters in Admin guide about nsslapd-pluginConfigArea attribute (memberOf for example)
  • Some plugins don't have the chapters like this at all (like RI plugin or maybe some others)
  • Some plugins have another config area definitions (dnaSharedCfgDN for example and maybe some others)

So it is a bit confusing.

I've grepped the sources for set_config_area and it gave me the idea where I can add nsslapd-pluginConfigArea.
I will do it in my second and final Plugin UI PR.

rebased onto 9e4e56cdec2d30eb5dbb5b1fd284dab8e931c225

rebased onto 68b6319d28239e7a9fa45c58ad2d8e5cd818f616

Pull-Request has been merged by spichugi

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This pull request has been cloned to Github as issue and is available here:
- https://github.com/389ds/389-ds-base/issues/3374

If you want to continue to work on the PR, please navigate to the github issue,
download the patch from the attachments and file a new pull request.

Thank you for understanding. We apologize for all inconvenience.

Pull-Request has been closed by spichugi

Metadata