mirror of
https://github.com/sassanix/Warracker.git
synced 2026-02-16 19:49:42 -06:00
### Major Features - **Public Global Warranty View:** All authenticated users can now view global warranties. Admins retain full control; regular users get read-only access to others’ warranties. - **Global View Admin Controls:** Admins can now toggle global view availability and limit it to admins only via site settings. - **Global Status Dashboard View:** Extended global view to warranty statistics and dashboards with full permissions enforcement. - **Apprise Push Notifications:** Integrated Apprise for multi-platform warranty alerts with extensive backend and frontend support (80+ services). - **Warranty Type Filtering/Sorting:** Introduced dynamic, case-insensitive filtering and sorting by warranty type on the main page. - **Admin Global Warranty View:** Dedicated admin tools and UI for viewing all warranties with enhanced styling and user info. ### UX/UI Enhancements - **Product Photo Thumbnails:** Added interactive, responsive photo previews on warranty cards across all views. - **Updated Footer Links:** All "Powered by Warracker" footers now link to the official website (`https://warracker.com`). ### Fixes and Stability Improvements - **Status Dashboard Chart Fixes:** Resolved canvas reuse errors and chart switching issues. - **CSS Cache Busting:** Ensured consistent styling across domain/IP access by versioning CSS/JS and updating service worker. - **Settings Access Fixes:** Regular users can now access the settings page without triggering admin-only API calls. - **Settings Persistence Fixes:** Addressed major frontend/backend issues preventing correct saving/loading of user preferences. - **Notification Timing Overhaul:** Rewrote logic for precise notification delivery and implemented duplicate prevention. ### Security and Technical Enhancements - Global view maintains secure ownership enforcement. - Improved permission checks, graceful degradation, and responsive design across all new features.
49 lines
1.6 KiB
SQL
49 lines
1.6 KiB
SQL
-- Script to fix PostgreSQL permissions for db_user
|
|
|
|
-- Grant role management privileges (removed SUPERUSER)
|
|
ALTER ROLE %(db_user)s WITH CREATEROLE;
|
|
|
|
-- Ensure all database objects are accessible
|
|
GRANT ALL PRIVILEGES ON DATABASE %(db_name)s TO %(db_user)s;
|
|
GRANT ALL PRIVILEGES ON SCHEMA public TO %(db_user)s;
|
|
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO %(db_user)s;
|
|
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO %(db_user)s;
|
|
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO %(db_user)s;
|
|
|
|
-- Make db_user the owner of all tables
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT tablename FROM pg_tables WHERE schemaname = 'public'
|
|
LOOP
|
|
EXECUTE 'ALTER TABLE public.' || quote_ident(rec.tablename) || ' OWNER TO %(db_user)s';
|
|
END LOOP;
|
|
END $$;
|
|
|
|
-- Make db_user the owner of all sequences
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT sequencename FROM pg_sequences WHERE schemaname = 'public'
|
|
LOOP
|
|
EXECUTE 'ALTER SEQUENCE public.' || quote_ident(rec.sequencename) || ' OWNER TO %(db_user)s';
|
|
END LOOP;
|
|
END $$;
|
|
|
|
-- Make db_user the owner of all functions
|
|
DO $$
|
|
DECLARE
|
|
rec RECORD;
|
|
BEGIN
|
|
FOR rec IN SELECT proname, p.oid FROM pg_proc p JOIN pg_namespace n ON p.pronamespace = n.oid WHERE n.nspname = 'public'
|
|
LOOP
|
|
BEGIN
|
|
EXECUTE 'ALTER FUNCTION public.' || quote_ident(rec.proname) || '(' || pg_get_function_arguments(rec.oid) || ') OWNER TO %(db_user)s';
|
|
EXCEPTION WHEN OTHERS THEN
|
|
RAISE NOTICE 'Error changing ownership of function %%: %%', rec.proname, SQLERRM;
|
|
END;
|
|
END LOOP;
|
|
END $$;
|