generalSecuritySettings:
    kind: panel.form
    name: generalSecuritySettings
    label: General Site Security Settings
    method: POST
    contentType: json
    url: /xapi/siteConfig
    contents:
        securityChannel:
            kind: panel.element
            label: Security Channel
            info: >
                <p>If you're using another service for SSL termination, including a front-end proxy such as Apache HTTPD
                or nginx, or a load balancer such as AWS elastic load balancing, you should leave the security channel
                set to "any".</p>
                <p>For more information, see <a target="_blank" href="https://wiki.xnat.org/display/XNAT17/XNAT+Security+Settings+in+the+Admin+UI#XNATSecuritySettingsintheAdminUI-channel">our documentation page</a>.</p>
            contents:
                securityChannelMenu:
                    kind: select.menu
                    name: securityChannel
                    options:
                        any: Any
                        http: http
                        https: https
        enabledProviders:
            kind: panel.input.textList
            label: Enabled Authentication Providers
            description: >
                Specifies the authentication providers that are currently enabled on the XNAT server.
        requireLogin:
            kind: panel.input.switchbox
            name: requireLogin
            label: Require User Login
            onText: Required
            offText: Not Required
            description: >
                If required, then only registered users will be able to access your site. If not required, anyone
                visiting your site will automatically be logged in as 'guest' with access to public data.
        restrictUserListAccessToAdmins:
            kind: panel.input.switchbox
            name: restrictUserListAccessToAdmins
            label: "Restrict user list access <br>to site administrators?"
            onText: Restricted
            offText: Not Restricted
            description: >
                Should this site restrict access to the list of system users to site administrators only?
                If enabled, the site is more secure, but this restricts project owners from being able to
                administer users in their projects directly.
        uiAllowNonAdminProjectCreation:
            kind: panel.input.switchbox
            label: "Allow non-administrators <br>to create projects?"
            onText: Allow
            offText: Do Not Allow
            description: >
                Should this site allow non-administrator users to create new projects?
                If enabled, the site is more secure, but this can make it more difficult for
                regular users to create new projects for their research efforts.
        allowNonAdminsToClaimUnassignedSessions:
            kind: panel.input.switchbox
            name: allowNonAdminsToClaimUnassignedSessions
            label: "Allow non-administrators <br>to find and claim <br>unassigned sessions?"
            onText: Allow
            offText: Do Not Allow
            description: >
                Should this site allow non-administrator users to search the prearchive for unassigned
                sessions and claim any sessions matching the patient name, patient ID, or study date they
                provide? Disabling this removes the "Find my study" feature and can help prevent users
                from stealing another user's data. But it can also make it harder for users to get their
                data into XNAT and increase the burden on site administrators.
        ipsThatCanSendEmailsThroughRest:
            kind: panel.input.text
            name: ipsThatCanSendEmailsThroughRest
            label: IPs that can send emails via REST
            description: >
              This must be a regular expression (do not include bounding '/' characters) which matches
              trusted IPs from which users or pipelines should be able to send emails via an XNAT REST
              call. By default this is set to allow all IPs but should be changed so that malicious
              users do not use this to send phishing emails.
            validation: "!pattern:^/"
            element:
                data:
                    message: Please do not include bounding "/" characters in your regex pattern.

