On 12/19/2012 10:32 AM, Aaron Weitekamp wrote:
On 12/18/2012 10:17 AM, Jeremy Perry wrote:
> Hey Aaron, thanks so much for looking at this.
>
> On Dec 18, 2012, at 8:50 AM, Aaron Weitekamp <aweiteka(a)redhat.com
> <mailto:aweiteka@redhat.com>> wrote:
>
>> * p.19:
>> - I can't see a use case for ever needing to assign multiple levels of
>> permissions so selecting multiple levels confuses me as a user. Would
>> a dropdown be more appropriate? (my comments about p.24 may also
>> apply--not sure yet)
> I thought this too until I met with Scott and realized by reading the
> role descriptions. It is possible - and desirable - to have multiple
> roles on a given object. The roles here are not subsets. "Resource Zone
> AppForm Blueprint Administrator" doe not have all of the permissions
> that "Resource Zone User" has. If you want someone to be able to manage
> the AppForm Blueprints AND be able to launch apps in a RZ, they
> need both of those roles.
>
This feels a bit "over-engineered" to me. Or rather, the defined roles
for a given object maybe aren't grouped properly for this
implementation. For example, if I'm a "resource zone admin" it's
confusing to have an option to also add me as a "resource zone user."
As a sysadmin I'm then wondering if a resource zone admin can actually
"use" the zone or just administer it.
Scott, do you think the roles could be defined in more "either/or" terms?
Yeah, this is a comment on the model itself rather than the UI. The
thing is a role is a collection of lower-level privileges. In some case
"higher" roles are supersets of the privilege list of the "lower"
ones,
but not always. The obvious examples of this in the current
implementation are the global roles -- there is the all-inclusive
Administrator role that includes everything, but there are then several
other global roles that focus on specific areas, so they're not
subsets/supersets of each other. Once you have the possibility of two
different roles on a resource that each contain a privilege that the
other does not, you have to allow for the possibility that you need to
assign both in some cases. The other case where you'll see more than one
role on a resource is when you have one role given to you directly and
another indirectly either via object inheritance (i.e. grant on the pool
which gives you certain rights on an instance), or via group membership
(you belong to a group that gives you 'resource zone user' but you're
individually granted 'resource zone admin') -- it's important to see the
additional roles granted there, so that it is clear that if you revoke
the 'resource zone admin' rights, the user will still retain the rights
conferred in those inherited or group-based role assignments.
Also, at an API level, roles are editable. An admin will at some point
be able to change what privileges are associated with a role and even
add new ones, so we can't really make assumptions about how often roles
are structured in such a way that one is always a subset of the other. I
think the best way to avoid confusion is to include a way to indicate in
the UI what privileges each role includes, as Jeremy has done in these
designs.
>>
>> * p.24 I'm not clear what this is but I'm pretty confused (red flag?).
>> If we're drilling down from the previous page I think it may be
>> clearer to display the view from p.12. I suspect I'm disoriented
>> because we're viewing user permissions but the left pane context and
>> heading lists a cloud resource.
> I don't show a cursor on 23 to guide you, but this is just if you
> clicked "Edit Roles" on page 23 for the user tjones. I think the context
> shown is correct. You shouldn't have to leave the resource to manage one
> user or one group's access to it. It is the same content as p12 but
> starting from the resource, not the user.
>
From a user workflow perspective it makes more sense, although I
suggest we don't encourage the user to go here unless necessary;
meaning, it seems like an infrequent use case if permissions are
managed at the group level. It might help to have a heading (or the
breadcrumb concept you mentioned is interesting) that highlights the
user/object context.
I'm not looking at the page at the moment, but at a higher level, there
are two basic ways of accessing permission grants. A permission grant is
the assignment of a role _to_ a user or group _on_ a resource. So the
primary way of interacting with permission grants is from the resource
page -- each permissioned resource provides a sub-section or tab in the
UI to show and manage permission grants on that resource. For example,
the 'show' page for a 'resource zone' has a 'permission grants'
tab that
shows the users and groups that have access to this resource, both
direct and indirect. On this page you can add/remove direct grants and
view inherited grants. The user and group profile pages do the same
thing from the opposite side of the relationship. They show the list of
resources that the user (or group) has been granted permission to
access, both direct and indirect. On this page you can also add/remove
direct grants and view inherited grants.
Scott