N°8524 - Make grant matrix display correctly in darkmoon and make it accessible for color vision impaired

This commit is contained in:
Stephen Abello
2025-10-16 10:36:53 +02:00
parent 1d52665012
commit e661e0bdbb
12 changed files with 117 additions and 12 deletions

View File

@@ -94,15 +94,15 @@ class URP_Profiles extends UserRightsBaseClassGUI
$bGrant = $oUserRights->GetProfileActionGrant($this->GetKey(), $sClass, $sAction);
if (is_null($bGrant))
{
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
return '<span class="ibo-user-rights ibo-is-failure">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
elseif ($bGrant)
{
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
return '<span class="ibo-user-rights ibo-is-success">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
}
else
{
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
return '<span class="ibo-user-rights ibo-is-failure">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}

View File

@@ -250,11 +250,11 @@ class URP_Profiles extends UserRightsBaseClassGUI
$iGrant = $oUserRights->GetProfileActionGrant($this->GetKey(), $sClass, $sAction);
if (!is_null($iGrant))
{
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
return '<span class="ibo-user-rights ibo-is-success">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
}
else
{
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
return '<span class="ibo-user-rights ibo-is-failure">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}

View File

@@ -82,11 +82,11 @@ class URP_Profiles extends UserRightsBaseClass
$oGrant = $oUserRights->GetClassActionGrant($this->GetKey(), $sClass, $sAction);
if (is_object($oGrant) && ($oGrant->Get('permission') == 'yes'))
{
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
return '<span class="ibo-user-rights ibo-is-success">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
}
else
{
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
return '<span class="ibo-user-rights ibo-is-failure">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}

View File

@@ -540,9 +540,9 @@ abstract class User extends cmdbAbstractObject
function GetGrantAsHtml($sClass, $iAction)
{
if (UserRights::IsActionAllowed($sClass, $iAction, null, $this)) {
return '<span style="background-color: #ddffdd;">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
return '<span class="ibo-user-rights ibo-is-success">'.Dict::S('UI:UserManagement:ActionAllowed:Yes').'</span>';
} else {
return '<span style="background-color: #ffdddd;">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
return '<span class="ibo-user-rights ibo-is-failure">'.Dict::S('UI:UserManagement:ActionAllowed:No').'</span>';
}
}

View File

@@ -8,3 +8,4 @@
@import "linked-set/all";
@import "tabular-fields/all";
@import "welcome-popup/all";
@import "user-rights";

View File

@@ -0,0 +1,33 @@
/*
* @copyright Copyright (C) 2010-2025 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
$ibo-user-rights--padding-x: $ibo-spacing-400 !default;
$ibo-user-rights--padding-y: $ibo-spacing-200 !default;
$ibo-user-rights--border-radius: $ibo-border-radius-400 !default;
$ibo-user-rights--is-success--background-color: $ibo-color-success-100 !default;
$ibo-user-rights--is-success--color: $ibo-color-success-950 !default;
$ibo-user-rights--is-success--border-color: $ibo-color-success-500 !default;
$ibo-user-rights--is-success--border: 1px solid $ibo-user-rights--is-success--border-color !default;
$ibo-user-rights--is-failure--background-color: $ibo-color-danger-100 !default;
$ibo-user-rights--is-failure--color: $ibo-color-danger-950 !default;
$ibo-user-rights--is-failure--border-color: $ibo-color-danger-500 !default;
$ibo-user-rights--is-failure--border: 1px solid $ibo-user-rights--is-failure--border-color !default;
.ibo-user-rights {
padding: $ibo-user-rights--padding-y $ibo-user-rights--padding-x;
border-radius: $ibo-user-rights--border-radius;
&.ibo-is-success {
background-color: $ibo-user-rights--is-success--background-color;
color: $ibo-user-rights--is-success--color;
border: $ibo-user-rights--is-success--border;
}
&.ibo-is-failure {
background-color: $ibo-user-rights--is-failure--background-color;
color: $ibo-user-rights--is-failure--color;
border: $ibo-user-rights--is-failure--border;
}
}

View File

@@ -290,3 +290,11 @@ $ibo-welcome-popup--stack-item--border-color: $ibo-color-grey-800;
$ibo-welcome-popup--stack-item--is-active--border-color: $ibo-color-grey-900;
$ibo-vendors-ckeditor--ck-content--text-color: $ibo-color-grey-900;
$ibo-user-rights--is-success--background-color: $ibo-color-success-950 !default;
$ibo-user-rights--is-success--color: $ibo-color-success-100 !default;
$ibo-user-rights--is-success--border-color: $ibo-color-success-950 !default;
$ibo-user-rights--is-failure--background-color: $ibo-color-danger-950 !default;
$ibo-user-rights--is-failure--color: $ibo-color-danger-100 !default;
$ibo-user-rights--is-failure--border-color: $ibo-color-danger-950 !default;

View File

@@ -1,3 +1,8 @@
$ibo-color-success-50: common-adjust-lightness($ibo-color-success-100, $ibo-color-base-lightness-100) !default;
$ibo-color-danger-50: common-adjust-lightness($ibo-color-success-100, $ibo-color-danger-100) !default;
$ibo-color-information-50: common-adjust-lightness($ibo-color-success-100, $ibo-color-information-100) !default;
$ibo-color-warning-50: common-adjust-lightness($ibo-color-success-100, $ibo-color-warning-100) !default;
$ibo-navigation-menu--menu-group-title--text-color--is-active: $ibo-color-blue-grey-900;
$ibo-navigation-menu--menu-group--background-color--is-active: $ibo-color-white-100;
$ibo-navigation-menu--menu-node--background-color: $ibo-color-grey-100;
@@ -65,3 +70,11 @@ $ibo-panel-colors: ('primary': $ibo-color-primary-800,'secondary': $ibo-color-se
$ibo-welcome-popup--stack-item--border-color: $ibo-color-grey-950;
$ibo-welcome-popup--stack-item--is-active--border-color: $ibo-color-grey-900;
$ibo-user-rights--is-success--background-color: $ibo-color-success-50 !default;
$ibo-user-rights--is-success--color: $ibo-color-success-950 !default;
$ibo-user-rights--is-success--border-color: $ibo-color-success-950 !default;
$ibo-user-rights--is-failure--background-color: $ibo-color-danger-100 !default;
$ibo-user-rights--is-failure--color: $ibo-color-danger-950 !default;
$ibo-user-rights--is-failure--border-color: $ibo-color-danger-950 !default;

View File

@@ -18,6 +18,10 @@ $ibo-toast--icon--font-size: 2rem !default;
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
$ibo-toast--icon--left: $ibo-spacing-400 !default;
$ibo-user-rights--icon--margin-right: $ibo-spacing-200 !default;
$ibo-user-rights--is-success--icon: '\f00c' !default;
$ibo-user-rights--is-failure--icon: '\f00d' !default;
@each $sName, $sIcon in $ibo-alert--icons {
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
@@ -147,3 +151,16 @@ $ibo-toast--icon--left: $ibo-spacing-400 !default;
.ibo-welcome-popup--stack-item.ibo-is-active {
border-width: 2px;
}
.ibo-user-rights {
&.ibo-is-success::before {
content: $ibo-user-rights--is-success--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
&.ibo-is-failure::before {
content: $ibo-user-rights--is-failure--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
}

View File

@@ -15,6 +15,10 @@ $ibo-toast--icon--font-size: 2rem !default;
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
$ibo-toast--icon--left: $ibo-spacing-400 !default;
$ibo-user-rights--icon--margin-right: $ibo-spacing-200 !default;
$ibo-user-rights--is-success--icon: '\f00c' !default;
$ibo-user-rights--is-failure--icon: '\f00d' !default;
@each $sName, $sIcon in $ibo-alert--icons {
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
@@ -71,3 +75,16 @@ $ibo-toast--icon--left: $ibo-spacing-400 !default;
}
}
.ibo-user-rights {
&.ibo-is-success::before {
content: $ibo-user-rights--is-success--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
&.ibo-is-failure::before {
content: $ibo-user-rights--is-failure--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
}

View File

@@ -15,6 +15,10 @@ $ibo-toast--icon--font-size: 2rem !default;
$ibo-toast--icon--top: calc(50% - #{$ibo-toast--icon--font-size} / 2) !default;
$ibo-toast--icon--left: $ibo-spacing-400 !default;
$ibo-user-rights--icon--margin-right: $ibo-spacing-200 !default;
$ibo-user-rights--is-success--icon: '\f00c' !default;
$ibo-user-rights--is-failure--icon: '\f00d' !default;
@each $sName, $sIcon in $ibo-alert--icons {
%ibo-alert-#{$sName}, .ibo-alert.ibo-is-#{$sName} {
@@ -71,3 +75,15 @@ $ibo-toast--icon--left: $ibo-spacing-400 !default;
}
}
.ibo-user-rights {
&.ibo-is-success::before {
content: $ibo-user-rights--is-success--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
&.ibo-is-failure::before {
content: $ibo-user-rights--is-failure--icon;
@extend %fa-solid-base;
margin-right: $ibo-user-rights--icon--margin-right;
}
}