summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2026-06-15Fix Smarty syntax error in my_images.tpl: {time()} → {$smarty.now}HEADmasterLester Caine1-3/+3
Three occurrences on portrait, avatar and logo image tags. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15Replace glyphicon eye toggle with biticon password-show SVGs on signinLester Caine1-5/+7
Switch the password reveal button from Bootstrap glyphicons (unavailable) to {biticon} password-show-on / password-show-off SVGs, toggling display via JS rather than swapping classes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07Remove duplicate ipackage attributes from biticon callsLester Caine2-3/+3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06users: revert installer login changes to validate.php and getSiteCookieNameLester Caine2-19/+1
Revert validate.php installer redirect and getSiteCookieName cookie-reuse fallback. Both caused more problems than they solved. Original behaviour restored; upgrade-time access via gOverrideLoginFunction works fine. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06users: fix session name split when site_title not yet in kernel_configLester Caine1-1/+12
getSiteCookieName() fell back to 'bit-user-bitweaver' whenever kernel_config hadn't loaded site_title (e.g. during installer/upgrade flow). This created a second cookie alongside the real 'bit-user-<site>' cookie, causing every cross-page redirect to land in a different session and lose loginfrom, admin status, and installer step state. Fix: if site_title is empty, reuse any existing bit-user-* cookie already present in the request rather than generating a new 'bitweaver' name. Also: after successful admin login, redirect to the installer directly when a version upgrade is pending (bypasses the broken loginfrom-via-session path for the INSTALLER_FORCE case). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06users: redirect admin to installer after login if upgrade is requiredLester Caine1-0/+7
After a successful admin login, if the database version is behind MIN_BIT_VERSION, redirect directly to install.php rather than relying on session-based loginfrom. During INSTALLER_FORCE the session cookie name can differ between pages (bit-user-bitweaver vs bit-user-lscesmainsite) because kernel_config may not be fully loaded, making loginfrom unreliable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06flags: add an.svg (Netherlands Antilles)Lester Caine1-0/+16
2026-06-05Switch icons: document-properties → edit, text-x-generic → view-list-textLester Caine6-9/+9
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Tweak flag span styling: 1px black border, line-height 1.6emLester Caine1-1/+1
Border defines edge on white-background flags like England; 1.6em line-height prevents white bars above/below the flag image. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Fix PHP 8 null array offset deprecation in flag_select_inc.tplLester Caine1-3/+4
$fsValue can be null when no country is set; coerce to empty string via |default:'' before using as array key in $countryFlags and $countries. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Add CSS flag dropdown select with lipis flag-iconsLester Caine10-26/+85
- css/flag-icons.css: lipis 4x3 set, 1x1 stripped, paths → ../icons/flags/ - countries_inc.php: asort, Smarty assigns, loadCss (PKG_PATH not PKG_URL); PHP files reduce to single require() - flag_select_inc.tpl: custom dropdown with .fi CSS flags, search filter, jQuery open/close; fsName/fsValue/fsId/fsSize; min-width 300px; line-height:1.5em on flag spans - html_head_inc.tpl placeholder; display templates keep {biticon istyle=flag} Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Tidy countries list: add 5 entries, fix KOR, map 8 previously flaglessLester Caine1-2/+22
New entries: Bonaire/BES, Jersey/JEY, Kosovo/XKX, Saint Martin/MAF, Sint Maarten/SXM — all have lipis flags available. Fix: KOR was mapped to 'ko' (wrong); corrected to 'kr'. Added iso3166 mappings for BLM/bl, CUW/cw, SSD/ss which were in $bwCountries but had no flag. Only SEA/AZR/FLD remain flagless. Added note on unmapped lipis SVGs (regional, organisational, territories). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Switch to lipis flag-icons 4x3 SVG set; update constituent country codesLester Caine276-17537/+10360
- Replace Marble SVGs with lipis/flag-icons 4x3 set (271 flags, consistent 4:3 ratio, CC0 licensed) - Update iso3166 map: ENG/SCT/WLS/NIR now point to gb-eng/gb-sct/gb-wls/gb-nir matching lipis naming; custom eng/sct/wls/nir SVGs retained alongside - Switch flag {biticon} calls from hardcoded width/height to istyle=flag Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Display flag icons at 32x24 (4:3 ratio)Lester Caine3-3/+3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Fix countries_inc.php scope in RoleUser::load() — require not require_onceLester Caine1-1/+1
Same issue as preferences/register: require_once inside a method is globally tracked, so a second user object load won't re-execute the file, leaving $bwIso3166 undefined and flag unset. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Fix countries_inc.php scope: require not require_once at page levelLester Caine3-3/+3
require_once in RoleUser::load() marks the file as included globally; subsequent require_once calls in preferences/register page scope are silently skipped, leaving $bwCountries undefined. Plain require forces execution in the current scope each time. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Replace GIF flag scan with static ISO alpha-3 country list and SVG flagsLester Caine501-53/+18654
- Add countries_inc.php: 252 countries as alpha-3 → name + alpha-3 → alpha-2 map for flag image lookup; derived from webtrees CountryService, no runtime webtrees dependency - Add 243 Marble SVG flags (xx.svg) plus eng/sct/wls/nir for constituent countries - Remove 244 full-name GIF flags - RoleUser: set users_country_code (alpha-3), flag (alpha-2 lowercase), and users_country (display name) at load time - preferences.php, register.php, hauth_register.php: replace opendir GIF scan with require_once countries_inc.php - Templates: replace {section loop=$flags} with {foreach $countries as $code => $name}; iexplain now uses display name instead of raw flag code Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05Switch delete icon from edit-delete to user-trash (dustbin)Lester Caine11-11/+11
user-trash updated to a proper dustbin SVG. All templates across all packages updated to use user-trash instead of edit-delete. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04Switch attachment icon from mail-attachment to stock_attachLester Caine1-1/+1
stock_attach (paperclip) is available as PNG (16px) and SVG (scalable), making it a cleaner fit for attach/assign/crosspost contexts than the mail-specific mail-attachment icon. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04Convert {booticon} to {biticon} — freedesktop/tango icon names throughoutLester Caine22-72/+72
Replace all {booticon iname="icon-*"} and {booticon iname="fa-*"} calls with {biticon ipackage="icons" iname="<freedesktop-name>"} using the tango iconset. Mapping covers ~70 distinct old names to tango equivalents (edit-delete, document-properties, go-next, lock, internet-mail, etc.). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01Remove 5.0.0 upgrade script — default version set to 5.0.0Lester Caine1-12/+0
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30Fix role_permissions nav bar dots and package filter on saveLester Caine1-5/+5
Package filter links wrapped in <ul class="list-inline"> so <li> elements are valid HTML — previously <li> inside <p> caused bullets to detach. Hidden package field default changed from 'All' to '' so form submission does not filter permissions to an empty set and silently save nothing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30Fix invalid cookie domain when remember-me is activeLester Caine1-1/+1
parse_url(BIT_ROOT_URL, PHP_URL_HOST) returns null for a path-only URL; the ?? '/' fallback set domain to '/' which browsers reject as invalid. Use ?? '' so the domain attribute is omitted and the browser infers the current host. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26Add users_auth_map table for OAuth/external authentication provider supportLester Caine2-0/+39
5.0.1 upgrade creates the table for existing installs; schema_inc.php updated so fresh installs also get it. FK constraint registered via registerSchemaConstraints (not inline DataDict, which breaks Firebird). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22Fix users_auth_map schema: remove inline CONSTRAINT that broke Firebird installsLester Caine1-1/+7
The inline CONSTRAINT clause used backtick-quoted identifiers which Firebird rejects. Moved the FK to registerSchemaConstraints following the liberty pattern. This caused USERS_AUTH_MAP to be missing on all Firebird installs. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18Ensure permissions array is populated when checking admin permission. May ↵Lester Caine1-0/+3
not be set during install process
2026-05-18Tidy register structure post stripping the groups biased codeLester Caine4-199/+199
2026-05-18Hidden tk filed now handled by {form} templateLester Caine4-4/+0
2026-05-16Pass users registered roles to session for use in protecting access using ↵Lester Caine1-3/+2
nginx auth
2026-05-16Correct logic around getRoles to correctly return just the roles a user is ↵Lester Caine1-2/+2
assigned to.
2026-05-16Tidy loadPermissions to ignore anonymous blockLester Caine1-1/+11
2026-05-15Remove unused group model codeLester Caine18-1343/+39
2026-05-15Only support ROLE_Model memory managementLester Caine2-140/+14
2026-05-15Namespace fixesLester Caine2-4/+5
2026-05-15To simplyfy maintenence BitUser classes have been retired and active code ↵Lester Caine22-5077/+32
base defaulted to ROLE_MODEL
2026-05-14php-cs-fixer tidies to php8.5 standardsLester Caine407-5767/+5671
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-10php8.5 tidies and drop Hash from getUserIdFromCookie as it only allows a ↵Lester Caine3-14/+14
cookie string
2026-05-08Check values exist before using, and add tk token manually as the smarty ↵V5-php84lsces5-15/+17
added on is not currently working
2026-04-19Picking off Roles niggles and a few PHP8.4 tidies.lsces1-6/+6
2026-04-19BitUser still needs more work for PHP8.4 functionalitylsces1-2/+2
2026-04-19Tidy empty array elements to allow smarty to run cleanlsces2-18/+20
2026-04-19Namesspace tidies for general authentication functionslsces4-4/+6
2026-04-19Bringing Role admin pages into working order as need for latest website clinet.lsces4-32/+34
2026-04-19Pull alternate Auth libraries into Bitweaver\Users namespace not ↵lsces4-153/+163
functionally tested, just getting admin pages running cleaner
2026-04-16Extend session information to allow extra security when accessing private ↵lsces1-0/+5
content. Use nginx auth_request to secure storage area from unmanaged use.
2026-04-16PHP8.4 style tweakslsces2-18/+12
2026-04-06Restored the ROLE_MODEL switch, but thinking it's about time I combined the ↵lsces1-10/+25
two models with one set of code using 'Team' and $gTeam to select group or role display. Should be able to return to one code base.
2026-04-06Ensure only the one session cookie is created and anonymous user always ↵lsces1-4/+4
needs creating when no user linked to session.
2026-04-06Hard coded defaults for php8.4lsces2-14/+14
2026-04-06recaptcha not working in smarty5 currently need to address at some point.lsces1-3/+3