-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Controls - Feature privileges besides all
and read
#35616
Comments
Pinging @elastic/kibana-security |
The following Figma prototype link contains the designs we discussed for sub-feature privileges: PrototypeScreenshot previewCompressed form controlsThe full set of compressed EUI form controls can be seen at the bottom of this page: https://elastic.github.io/eui/#/forms/compressed-forms Let me know if you need any assistance or feedback once you start building this out. Happy to help! |
This one will likely become important for a set of RBAC-like features that we need in SIEM and the Endpoint app. For example, in the SIEM, we want to have users (say, Tier 1 analysts) that can view and close signals but that cannot manage the SIEM rules. |
@ryankeairns I'm starting to pick this up again, and I'd like to get your thoughts: In the screenshot, we have a "Mute alert messages" sub-feature privilege, which the user can toggle independently of the "All"/"Read"/"None" button group. Selecting "All" will automatically select "Mute alert messages" (based on the Figma you sent), which is what I'd expect: I'm curious what this will look like once there are more than a couple of sub-feature privileges in this section. For example, I could imagine Alert management having the following (hypothetical):
I fear that the UI will end up a bit crowded in this scenario, or visually hard to parse |
@legrego I don't recall making that connection, at the time, between "All" and "Mute". The mockups were showing a few different combinations, but I was imagining the button group (All | Read | None) had to do with CRUD permissions whereas Mute would affect the notifications that pop up. Maybe we should zoom about this so that I'm following more closely. It might be that this gets split into more than one section or something. |
I chatted with @kobelb after posting this, and I think your initial understanding is correct: the button group for alerting would be for CRUD permissions, while the mute checkbox would be an additional action that could be selected. |
I'd like to open a comment period for the overall UI which enables this feature. I have a working proof-of-concept which illustrates how the role management screen will function when configuring sub-feature privileges. MotivationThe original feature controls implementation went through a lot of design iterations, and as a result, the underlying implementation became rather difficult to maintain and reason about. We didn't take the proper time to restructure the implementation following design changes, and I want to make sure we leave ourselves enough time to do it right this time around. I am looking to get "approval" from the following stakeholders on the proposed approach before we go through the effort of getting this ready for final code and design reviews:
Out of scopeThis is not a code review.The code is not in a state to review. Please run this to get a sense of how Kibana will behave, without reviewing the underlying implementation. This is mostly not a design review.I have cleanup to do yet: There are controls which take up the wrong amount of space, and controls which overlap each other in certain conditions. The types of controls and overall layout is all in scope, however. In scopeThe overall layout and experience of configuring privileges is in-scope for review at this point. This includes:
Comment periodPlease reply directly to this issue with your feedback. To testRun from the After bootstrapping, view the role management page. For this test, I've added mock sub-feature privileges to the Discover and Visualize features. Let me know if you need help getting your environment setup, I'm more than happy to help out here. Rough set of commands
A word of caution |
Checked this out locally and it looks good, nice progress. A driving theme in this design was to make the interactions feel intentional. In reviewing this PR, I did feel as though I was being guided to make clear/cautious decisions when changing privileges with global and/or overriding effects. |
Nice work, this is working great! I noticed a few things when going through the UI/UX, some of which are quite possibly bugs or temporary short-cuts
Was this intentional? If so, will that always be the behavior within sub-feature privileges?
|
Thanks for the prompt feedback @kobelb / @ryankeairns!
It was intentional - it was my understanding that the "privilege groups" were not in any way linked to each other, but on the other hand, I can see this tripping up some users. In this specific example, it won't be very helpful to mute alerts if you can't even read them.
👍 I can add this
I'll defer to @ryankeairns on these two points; I followed the Figma mockup for both.
🤷♂ This was honestly the easier of the two options to implement. I like this approach because it respects the visual hierarchy - changing the primary feature privilege resets the form, which you can then choose to customize. It could be frustrating to lose your changes, but I sincerely hope that these sub-feature forms won't grow to be all that complex.
This just saves me a click when doing the change -> refresh -> test cycle, and won't be in the final design.
That's a good point, it's rather useless for features which lack sub-features. I'll update to remove this. Should there be some other content there to signify that you can't change anything, or should we just leave it empty? |
I'm not sure I'm following the first point completely, but would it be possible still display a button group, but set it to disabled? Then we're using the same UI elements (button groups and checkboxes) in all situations. To the second point, we could use the |
We certainly can. I tried this, but even when using |
I'm late to the party, but to add my 2 cents to the feedback that was already given:
I like the current implementation.
I think leaving it empty would be best. My own feedback:
Also, I found a bug, in case you weren't aware of this behavior already: |
That's an interesting idea. Here's a quick-and-dirty implementation to show it off. My one hesitation here is getting features without sub-feature privileges to render correctly. We'd want them to render like an accordion, but without the expanding action or UI affordances for it. If I get some time after the more critical paths are in place, I'll revisit this to see what's possible.
Should be easy enough to do!
Yep, thanks for reporting though! |
Great work, once again. A couple of thoughts/questions:
|
Yes, you can open and work on as many features as you'd like in this screen, so I agree it can make the sub-features sections a bit difficult to parse. @ryankeairns do you have any suggestions on how to make this easier to parse? Having a visual separation between the different sub-features might be helpful here, but I worry about drawing too many horizontal lines, since we are already rendered inside of a table (FWIW, I don't think this part is solved by accordions either). We could also give more space between each sub-feature, but I then worry about the amount of scrolling folks will have to do in order to see everything when more than one row is expanded.
++
I think this is still up for debate. In other words, I considered it out-of-scope for this issue. The "All"/"Read"/"None" that we show at the feature-level will remain unchanged for now. Features (applications) will still have to fit their privilege model into the "All"/"Read"/"None" categories, but they will have a lot of control over the sub-features. In general, the sub-feature privileges come in two flavors:
|
Totally agree, not easy to improve this. Curious if there is a way without explicitly drawing lines, e.g. slightly varying the background shades or something better. Also, with many sub-areas open, is the parent-child grouping of main privileges and sub-features maintained or does it get blurred?
Makes sense, thanks. |
I'll see if we can some up with something better
I think the parent-child groupings are maintained here. There is enough color contrast and lines between the parent row and the expanded child region to delineate this |
Presently, we only allow feature's to register an
all
orread
privilege. This is rather limiting and doesn't allow features to grant more granular access to individual "sub features", for example the ability to create short urls. Another example could be for the various visualization types. Administrators might not want users to create certain visualizations. For example, Vega visualizations allow for raw ES queries to be written to power the visualizations, and that can lead to problems with the cluster if a user writes a very expensive query.Or for index pattern management, administrators might want to restrict who can create scripted fields within the patterns.
The text was updated successfully, but these errors were encountered: