Skip to content

Comments

fix: detect server admin status on connect for diary controls#77

Open
fank wants to merge 2 commits intomainfrom
fix/admin-detection-on-mission-load
Open

fix: detect server admin status on connect for diary controls#77
fank wants to merge 2 commits intomainfrom
fix/admin-detection-on-mission-load

Conversation

@fank
Copy link
Member

@fank fank commented Feb 21, 2026

Summary

  • Fixes admin diary controls not appearing when a player loads a mission while already logged in as server admin
  • The "connect" case in fnc_adminUIcontrol only checked the administratorList CBA setting — it never queried Arma's admin command for actual server admin status
  • OnUserAdminStateChanged only fires on state changes, so if you're already admin when the mission loads, it never fires
  • PR fix: grant admin diary controls to already-connected players #52 fixed the race condition for already-connected players but still relied on the same connect path that only checked administratorList
  • Now also checks admin _owner > 0 on connect, in both the "no admin list configured" and "admin list exists" branches

Test plan

  • Log in as server admin, load a mission → verify OCAP admin diary controls appear without needing to re-login
  • Log in as server admin with UID in administratorList, load mission → controls appear (existing behavior preserved)
  • Connect as non-admin player not in administratorList → no controls granted
  • Log in/out as admin during mission → controls added/removed (existing behavior)

The "connect" case in adminUIcontrol only checked the administratorList
CBA setting, never querying Arma's actual admin state. When loading a
mission while already logged in as server admin, OnUserAdminStateChanged
doesn't fire (state didn't change) and the connect path missed the
player. Now also checks `admin _owner > 0` on connect.
@gemini-code-assist
Copy link

Summary of Changes

Hello @fank, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request resolves an issue where server administrators might not see their diary controls if they were already logged in as an admin when a mission started. It introduces a direct check for a player's server admin status upon connection, ensuring that controls are correctly assigned based on their actual administrative privileges, thereby improving the reliability of admin tool access.

Highlights

  • Admin Controls Fix: Implemented a fix for admin diary controls not appearing for server administrators who connect before a mission loads, by explicitly checking their server admin status (admin _owner > 0) upon connection.
  • Enhanced Admin Detection: Enhanced the fnc_adminUIcontrol function to verify a player's server admin status during the "connect" event, regardless of whether an administratorList is configured.
  • Improved Debugging: Updated debug logging to provide more specific reasons when OCAP controls are granted to a player, indicating if it's due to the administratorList or direct server admin status.
Changelog
  • addons/recorder/fnc_adminUIcontrol.sqf
    • Added a check for current server admin status (admin _owner > 0) during the "connect" event when no administratorList is defined, granting OCAP controls if applicable.
    • Modified the "connect" event logic to also consider admin _owner > 0 as a condition for granting OCAP controls, in addition to being in the administratorList.
    • Updated the debug message for granting OCAP controls to dynamically report whether the controls were granted due to being in the administratorList or being a server admin.
Activity
  • No human activity has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request correctly identifies and fixes an issue where server admins who are already logged in when a mission starts don't receive the OCAP admin diary controls. The solution of checking admin _owner > 0 on connect is sound and has been applied to both cases: where an administratorList is defined and where it is not. I've suggested one minor improvement to ensure controls are not added redundantly, bringing it in line with similar checks elsewhere in the file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant