[racktables-users] Re: Hide Attributes from certain users?

  • From: Denis Ovsienko <denis@xxxxxxxxxxxxx>
  • To: racktables-users@xxxxxxxxxxxxx
  • Date: Fri, 31 Jan 2020 00:47:32 +0100 (CET)

On Fri, 17 Jan 2020 13:50:14 +0000
Greiner Alexander <Alexander.Greiner@xxxxx> wrote:

Hello, 

 

is it possible to hide certain attributes for users/ groups?


RackTables maps some attribute data into the security context in
several ways to decide what is permitted and what is not, but maybe not
in the exact way you are expecting.

As far as I remember it now, the automatic tags of the form {$attr_X_Y}
(see [1]) influence object-level decisions, and "ephemeral" (they are
not even displayed as automatic) tags of the form {$attr_X} influence
attribute-level decisions. That is, permissions like this work well to
set different access levels to different attributes without affecting
permissions of the whole object (which need to be defined separately):

define [UUID] {$attr_25}

# view
allow {junior admin} and [UUID] and not {$any_op}

# edit
allow {senior admin} and [UUID]

# hide
deny [UUID]


Permissions like this work on the object level:

deny {$attr_26_1501} # should deny all hypervisors

mysql> SELECT * FROM Attribute WHERE id = 26;
+----+------+------------+
| id | type | name       |
+----+------+------------+
| 26 | dict | Hypervisor |
+----+------+------------+
1 row in set (0.00 sec)

mysql> SELECT * FROM Chapter WHERE id = 29;
+----+--------+--------+
| id | sticky | name   |
+----+--------+--------+
| 29 | no     | Yes/No |
+----+--------+--------+
1 row in set (0.00 sec)

mysql> SELECT * FROM Dictionary WHERE chapter_id = 29;
+------------+----------+-------------+------------+
| chapter_id | dict_key | dict_sticky | dict_value |
+------------+----------+-------------+------------+
|         29 |     1500 | yes         | No         |
|         29 |     1501 | yes         | Yes        |
+------------+----------+-------------+------------+
2 rows in set (0.00 sec)


1: https://wiki.racktables.org/index.php/RackTablesUserGuide#Object_tags


For example: Admin should be able to see Attribute XXX with the value
xxx; but other users will not be able too see the tag.

I guess these features were not originally intended to work together,
but they might just work out the way you described given a combined
expression like this:

deny {user group} and {$attr_X} and {$attr_X_Y}

(I didn't test it, but the pointers above should provide enough
information to try and figure it out.)

-- 
    Denis Ovsienko

Other related posts: