GetPrivileges(); # Set starting index $Index = 0; $Counter = 0; # Loop through each privilege foreach ($Privileges as $Privilege) { # Determine if current privilege is not predefined if (!$Privilege->IsPredefined() && isset($_POST["F_PermissionText".$Index])) { # Initialize status $Status = 0; # Determine privilege's update/delete status if (isset($_POST["F_PermissionText".$Index."_Delete"])) { # Delete the privilege and update status $Privilege->Delete(); $Status = 1; $Counter--; } elseif ($Privilege->Name() !== $_POST["F_PermissionText".$Index]) { # Update privilege and status $Privilege->Name(addslashes($_POST["F_PermissionText".$Index])); $Status = 2; } # Display privilege and increment index DisplayField($Privilege->Name(), $Status); $Index++; $Counter++; } } # Loop through remaining permission values for ($Index; isset($_POST["F_PermissionText".$Index]); $Index++) { $Name = trim($_POST["F_PermissionText".$Index]); $MarkedForDeletion = isset($_POST["F_PermissionText".$Index."_Delete"]); $PrivilegeExists = $PrivilegeFactory->PrivilegeNameExists($Name); # If not whitespace or an existing privilege, add new privilege and # display it if (strlen($Name) > 0 && !$MarkedForDeletion && !$PrivilegeExists) { $EscapedName = $Name; $Privilege = new Privilege(null, $EscapedName); DisplayField($Privilege->Name(), 3); $Counter++; } } # Determine if any privileges exist if ($Counter < 1) { DisplayField("No privileges", 0); } } function DisplayPrivileges(): void { # Create privilege factory and get all privileges $PrivilegeFactory = new PrivilegeFactory(); $Privileges = $PrivilegeFactory->GetPrivileges(); # Determine if any privileges exist $PrivFactory = new PrivilegeFactory(); if (count($Privileges) - count($PrivFactory->GetPredefinedPrivilegeConstants()) < 1) { DisplayField("No privileges", 0); } else { # Loop through each privilege foreach ($Privileges as $Privilege) { # Determine if current privilege is not predefined if (!$Privilege->IsPredefined()) { # Display privilege and increment index DisplayField($Privilege->Name(), 0); } } } } function getStatusText(int $Status): string { $Map = [ 0 => "No Update", 1 => "Deleted", 2 => "Updated", 3 => "Added" ]; $Text = (array_key_exists($Status, $Map)) ? $Map[$Status] : "Unknown"; return $Text; } function DisplayField(string $Name, int $Status): void { $StatusText = GetStatusText($Status); ?> setIcon("Pencil.svg"); $EditButton->setLink("index.php?P=EditPrivilegeNames"); # ----- DISPLAY -------------------------------------------------------------- ?>

Per-Field User Permission Names

getHtml(); ?>
Permission Name Status