update: packages,lua,shared (5 files)

This commit is contained in:
Richard Ward
2025-12-30 19:41:55 +00:00
parent cd2c8aaad9
commit d6a4c538ee
5 changed files with 124 additions and 6 deletions

View File

@@ -1,5 +1,7 @@
-- Export utilities for data tables
-- DEPRECATED: This file redirects to export/ directory
-- Functions are now split into single-function files
--- Export utilities for data tables
--- DEPRECATED: This file redirects to export/ directory
--- Functions are now split into single-function files
---@module export
---@deprecated Use export.init instead
return require("export.init")

View File

@@ -1,5 +1,7 @@
-- Filtering utilities for data tables
-- DEPRECATED: This file redirects to filtering/ directory
-- Functions are now split into single-function files
--- Filtering utilities for data tables
--- DEPRECATED: This file redirects to filtering/ directory
--- Functions are now split into single-function files
---@module filtering
---@deprecated Use filtering.init instead
return require("filtering.init")

View File

@@ -0,0 +1,4 @@
-- Permission system entry point
-- Redirects to permissions/ directory
return require("permissions.init")

View File

@@ -0,0 +1,55 @@
-- Database toggle control
-- Functions for managing database availability state
---@class DatabaseToggle
local M = {}
-- Internal database state
local databaseEnabled = true
---Initialize database state
---@param enabled? boolean Initial database state (default: true)
function M.initialize_database(enabled)
databaseEnabled = enabled ~= false
end
---Enable database access
function M.enable_database()
databaseEnabled = true
end
---Disable database access
function M.disable_database()
databaseEnabled = false
end
---Check if database is enabled
---@return boolean enabled Whether database is enabled
function M.is_database_enabled()
return databaseEnabled
end
---Enforce database requirement
---@param resourceName? string Name of resource requiring database
---@return boolean success Returns true if database is enabled
function M.require_database(resourceName)
if not databaseEnabled then
local resource = resourceName or "this operation"
error(string.format(
"Database access required for %s but database is disabled",
resource
))
end
return true
end
---Get database status with metadata
---@return table status Database status information
function M.get_database_status()
return {
enabled = databaseEnabled,
message = databaseEnabled and "Database is enabled" or "Database is disabled"
}
end
return M

View File

@@ -0,0 +1,55 @@
-- Permission system module facade
-- Exports all permission functions for easy access
---@class Permissions
local M = {}
-- Import all permission modules
local checkAccess = require("permissions.check_access")
local enforceLevel = require("permissions.enforce_level")
local manageFlags = require("permissions.manage_flags")
local databaseToggle = require("permissions.database_toggle")
-- Re-export access checking
M.check_access = checkAccess.check_access
-- Re-export level enforcement
M.enforce_level = enforceLevel.enforce_level
-- Re-export feature flag management
M.initialize_flags = manageFlags.initialize_flags
M.enable_flag = manageFlags.enable_flag
M.disable_flag = manageFlags.disable_flag
M.is_flag_enabled = manageFlags.is_flag_enabled
M.get_all_flags = manageFlags.get_all_flags
M.check_required_flags = manageFlags.check_required_flags
-- Re-export database toggle
M.initialize_database = databaseToggle.initialize_database
M.enable_database = databaseToggle.enable_database
M.disable_database = databaseToggle.disable_database
M.is_database_enabled = databaseToggle.is_database_enabled
M.require_database = databaseToggle.require_database
M.get_database_status = databaseToggle.get_database_status
---Check package permissions for a user
---@param userLevel PermissionLevel User's permission level
---@param packagePermissions PackagePermissions Package permission configuration
---@return PermissionCheckResult
function M.check_package_access(userLevel, packagePermissions)
local featureFlags = M.get_all_flags()
local databaseEnabled = M.is_database_enabled()
return M.check_access(userLevel, packagePermissions, featureFlags, databaseEnabled)
end
---Check component permissions for a user
---@param userLevel PermissionLevel User's permission level
---@param componentPermissions ComponentPermission Component permission configuration
---@return PermissionCheckResult
function M.check_component_access(userLevel, componentPermissions)
local featureFlags = M.get_all_flags()
local databaseEnabled = M.is_database_enabled()
return M.check_access(userLevel, componentPermissions, featureFlags, databaseEnabled)
end
return M