]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Improve descriptions in some parts of the dashboard 40545/head
authorNizamudeen A <nia@redhat.com>
Thu, 25 Mar 2021 08:07:34 +0000 (13:37 +0530)
committerNizamudeen A <nia@redhat.com>
Thu, 1 Apr 2021 14:30:06 +0000 (20:00 +0530)
Improves the description in some parts of the dashboard code.

Fixes: https://tracker.ceph.com/issues/49829
Fixes: https://tracker.ceph.com/issues/49969
Signed-off-by: Nizamudeen A <nia@redhat.com>
(cherry picked from commit 82235fd7567f974890e884f873f8de0fb226ada1)

src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-move-modal/rbd-trash-move-modal.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-purge-modal/rbd-trash-purge-modal.component.html
src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-trash-restore-modal/rbd-trash-restore-modal.component.html
src/pybind/mgr/dashboard/frontend/src/app/shared/components/select/select.component.scss
src/pybind/mgr/dashboard/services/access_control.py
src/pybind/mgr/dashboard/tests/test_access_control.py

index b87dbfe6b6dfd2a003a2d0d7cd63ffe65058db07..00c3f926598942ca16e6eed6bb4ce30a3560dab6 100644 (file)
@@ -17,7 +17,7 @@
         </div>
 
         <p i18n>To move <kbd>{{ imageSpecStr }}</kbd> to trash,
-          click <kbd>Move Image</kbd>. Optionally, you can pick an expiration date.</p>
+          click <kbd>Move</kbd>. Optionally, you can pick an expiration date.</p>
 
         <div class="form-group">
           <label class="col-form-label"
index 4958173083b6a2625560bff6ed3e37b1e4437d15..6acbbb08622e5f27b51a2f629c3631739d85cadf 100644 (file)
@@ -9,12 +9,10 @@
           [formGroup]="purgeForm"
           novalidate>
       <div class="modal-body">
-        <p>
-          <ng-container i18n>To purge, select one or</ng-container>&nbsp;
-          <kbd i18n>All</kbd>&nbsp;
-          <ng-container i18n>pools and click</ng-container>&nbsp;
-          <kbd i18n>Purge Trash</kbd>.&nbsp;
-        </p>
+        <p i18n>To purge, select&nbsp;
+          <kbd>All</kbd>&nbsp;
+          or one pool and click&nbsp;
+          <kbd>Purge</kbd>.&nbsp;</p>
 
         <div class="form-group">
           <label class="col-form-label mx-auto"
index ab64c78285da64a4248326d9d3156253a7c7fad3..2cc3e08dff07d0be6aa7120833aeabd6b14c28eb 100644 (file)
@@ -9,12 +9,10 @@
           [formGroup]="restoreForm"
           novalidate>
       <div class="modal-body">
-        <p>
-          <ng-container i18n>To restore</ng-container>&nbsp;
+        <p i18n>To restore&nbsp;
           <kbd>{{ imageSpec }}@{{ imageId }}</kbd>,&nbsp;
-          <ng-container i18n>type the image's new name and click</ng-container>&nbsp;
-          <kbd i18n>Restore Image</kbd>.
-        </p>
+          type the image's new name and click&nbsp;
+          <kbd>Restore</kbd>.</p>
 
         <div class="form-group">
           <label class="col-form-label"
index ce38728f7a44c6d74b024bc15d0b0a4f881f9d2e..9a4b45062f20dfde0f2b7e2d20519ab70a6d1504 100644 (file)
@@ -19,4 +19,8 @@
 
 .select-menu-item-content {
   padding: 0.5em;
+
+  .form-text {
+    display: flex;
+  }
 }
index bb44bad9e9aa36cf80f14725711e3e9587aa7556..7a366b63bee3245483e0e4015348cc0c1abe3988 100644 (file)
@@ -208,67 +208,76 @@ class Role(object):
 # this roles cannot be deleted nor updated
 
 # admin role provides all permissions for all scopes
-ADMIN_ROLE = Role('administrator', 'Administrator', {
-    scope_name: Permission.all_permissions()
-    for scope_name in Scope.all_scopes()
-})
+ADMIN_ROLE = Role(
+    'administrator', 'allows full permissions for all security scopes', {
+        scope_name: Permission.all_permissions()
+        for scope_name in Scope.all_scopes()
+    })
 
 
 # read-only role provides read-only permission for all scopes
-READ_ONLY_ROLE = Role('read-only', 'Read-Only', {
-    scope_name: [_P.READ] for scope_name in Scope.all_scopes()
-    if scope_name != Scope.DASHBOARD_SETTINGS
-})
+READ_ONLY_ROLE = Role(
+    'read-only', 'allows read permission for all security scopes except dashboard settings', {
+        scope_name: [_P.READ] for scope_name in Scope.all_scopes()
+        if scope_name != Scope.DASHBOARD_SETTINGS
+    })
 
 
 # block manager role provides all permission for block related scopes
-BLOCK_MGR_ROLE = Role('block-manager', 'Block Manager', {
-    Scope.RBD_IMAGE: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.POOL: [_P.READ],
-    Scope.ISCSI: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.RBD_MIRRORING: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
+BLOCK_MGR_ROLE = Role(
+    'block-manager', 'allows full permissions for rbd-image, rbd-mirroring, and iscsi scopes', {
+        Scope.RBD_IMAGE: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.POOL: [_P.READ],
+        Scope.ISCSI: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.RBD_MIRRORING: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
 
 
 # RadosGW manager role provides all permissions for block related scopes
-RGW_MGR_ROLE = Role('rgw-manager', 'RGW Manager', {
-    Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
+RGW_MGR_ROLE = Role(
+    'rgw-manager', 'allows full permissions for the rgw scope', {
+        Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
 
 
 # Cluster manager role provides all permission for OSDs, Monitors, and
 # Config options
-CLUSTER_MGR_ROLE = Role('cluster-manager', 'Cluster Manager', {
-    Scope.HOSTS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.OSD: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.MONITOR: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.MANAGER: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CONFIG_OPT: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.LOG: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
+CLUSTER_MGR_ROLE = Role(
+    'cluster-manager', """allows full permissions for the hosts, osd, mon, mgr,
+    and config-opt scopes.""", {
+        Scope.HOSTS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.OSD: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.MONITOR: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.MANAGER: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.CONFIG_OPT: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.LOG: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
 
 
 # Pool manager role provides all permissions for pool related scopes
-POOL_MGR_ROLE = Role('pool-manager', 'Pool Manager', {
-    Scope.POOL: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
+POOL_MGR_ROLE = Role(
+    'pool-manager', 'allows full permissions for the pool scope', {
+        Scope.POOL: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
 
 # CephFS manager role provides all permissions for CephFS related scopes
-CEPHFS_MGR_ROLE = Role('cephfs-manager', 'CephFS Manager', {
-    Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
-
-GANESHA_MGR_ROLE = Role('ganesha-manager', 'NFS Ganesha Manager', {
-    Scope.NFS_GANESHA: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
-    Scope.GRAFANA: [_P.READ],
-})
+CEPHFS_MGR_ROLE = Role(
+    'cephfs-manager', 'allows full permissions for the cephfs scope', {
+        Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
+
+GANESHA_MGR_ROLE = Role(
+    'ganesha-manager', 'allows full permissions for the nfs-ganesha scope', {
+        Scope.NFS_GANESHA: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.CEPHFS: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.RGW: [_P.READ, _P.CREATE, _P.UPDATE, _P.DELETE],
+        Scope.GRAFANA: [_P.READ],
+    })
 
 
 SYSTEM_ROLES = {
index 622880d8369d38d5d5bc15c7bcfae30b7742f838..54b94cf86c3bbd9f6340d30a55c5b722a672689c 100644 (file)
@@ -154,7 +154,8 @@ class AccessControlTest(unittest.TestCase, CLICommandTestMixin):
     def test_show_system_role(self):
         role = self.exec_cmd('ac-role-show', rolename="read-only")
         self.assertEqual(role['name'], 'read-only')
-        self.assertEqual(role['description'], 'Read-Only')
+        self.assertEqual(role['description'],
+                         'allows read permission for all security scopes except dashboard settings')
 
     def test_delete_system_role(self):
         with self.assertRaises(CmdException) as ctx: