{"id":25,"date":"2026-06-30T13:39:34","date_gmt":"2026-06-30T18:39:34","guid":{"rendered":"https:\/\/ocdany.com\/portal\/?page_id=25"},"modified":"2026-06-30T13:39:34","modified_gmt":"2026-06-30T18:39:34","slug":"portal","status":"publish","type":"page","link":"https:\/\/ocdany.com\/portal\/","title":{"rendered":"OC LEO Portal"},"content":{"rendered":"\n        <main class=\"portal-login-shell user-login\">\n            \n        <div class=\"portal-rollout-notice\" id=\"portalRolloutNotice\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"portalRolloutNoticeTitle\">\n            <div class=\"portal-rollout-card\">\r\n                <button type=\"button\" class=\"portal-rollout-close\" id=\"portalRolloutClose\" aria-label=\"Close notice\">&times;<\/button>\r\n                <p class=\"portal-rollout-kicker\">Portal Notice<\/p>\r\n                <h2 id=\"portalRolloutNoticeTitle\">New Law Enforcement Portal<\/h2>\r\n                <p>Notice, a new Law Enforcement Portal has been created to enhance the security and user experience. Your existing username and password for the request system has been carried over to this new system. We have implemented an MFA authenticator app requirement for security purposes, you will be required to setup that system on first use and then to log in each time after.<\/p>\r\n                <button type=\"button\" class=\"portal-rollout-action\" id=\"portalRolloutAction\">Continue to Login<\/button>\r\n            <\/div>\r\n        <\/div>\n    \r\n            <section class=\"portal-login-panel\">\r\n                <div class=\"portal-login-brand\">\r\n                    <img decoding=\"async\" src=\"https:\/\/ocdany.com\/portal\/wp-admin\/admin-ajax.php?action=oc_leo_portal_seal&amp;v=0.5.23\" alt=\"Orange County District Attorney seal\" onerror=\"this.style.display='none'\">\n                    <div>\r\n                        <p>Orange County District Attorney<\/p>\r\n                        <h1>Law Enforcement Portal<\/h1>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"portal-login-copy\">\r\n                    <h2>User Login<\/h2>\r\n                    <p>Use your agency email address and password to enter the portal.<\/p>\r\n                <\/div>\r\n                \r\n                <form class=\"portal-login-form\" method=\"post\" action=\"https:\/\/ocdany.com\/portal\/index.php?rest_route=wpv2pages25&#038;portal_login=user\" autocomplete=\"off\">\r\n                    <input type=\"hidden\" id=\"oc_leo_portal_login_nonce\" name=\"oc_leo_portal_login_nonce\" value=\"f774af64cf\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/portal\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F25\" \/>\r\n                    <input type=\"hidden\" name=\"oc_leo_portal_login\" value=\"1\">\r\n                    <input type=\"hidden\" name=\"oc_leo_login_type\" value=\"customer\">\r\n                    <p class=\"login-username\">\r\n                        <label for=\"oc-leo-login-email\">Agency email<\/label>\r\n                        <input id=\"oc-leo-login-email\" type=\"text\" name=\"log\" autocomplete=\"username\" spellcheck=\"false\" required>\r\n                    <\/p>\r\n                    <p class=\"login-password\">\r\n                        <label for=\"oc-leo-login-password\">Password<\/label>\r\n                        <span class=\"portal-login-password-row\">\r\n                            <input id=\"oc-leo-login-password\" type=\"password\" name=\"pwd\" autocomplete=\"current-password\" required>\r\n                            <button type=\"button\" id=\"oc-leo-login-password-toggle\">Show<\/button>\r\n                        <\/span>\r\n                    <\/p>\r\n                    <p class=\"login-remember\">\r\n                        <label><input type=\"checkbox\" name=\"rememberme\" value=\"forever\"> Keep me signed in on this device<\/label>\r\n                    <\/p>\r\n                    <p class=\"login-submit\">\r\n                        <input type=\"submit\" value=\"Enter Portal\">\r\n                    <\/p>\r\n                <\/form>\n                <p class=\"portal-login-note\">Regular user accounts are managed through the request system. Contact the DA office portal administrator if access needs to be created or changed.<\/p>\n                <p class=\"portal-login-switch\"><a href=\"https:\/\/ocdany.com\/portal\/index.php?rest_route=wpv2pages25&#038;portal_login=admin\">DA Login<\/a><span aria-hidden=\"true\">|<\/span><a href=\"https:\/\/ocdany.com\/portal\/index.php?rest_route=wpv2pages25&#038;portal_register=1\">Create new user<\/a><span aria-hidden=\"true\">|<\/span><a href=\"https:\/\/ocdany.com\/portal\/index.php?rest_route=wpv2pages25&#038;portal_recovery=password&#038;portal_login=user\">Forgot password<\/a><span aria-hidden=\"true\">|<\/span><a href=\"https:\/\/ocdany.com\/portal\/index.php?rest_route=wpv2pages25&#038;portal_recovery=mfa&#038;portal_login=user\">Reset MFA<\/a><span aria-hidden=\"true\">|<\/span><button type=\"button\" id=\"portalLoginFeedbackOpen\">Report issue \/ suggestion<\/button><\/p>\n            <\/section>\n            <section class=\"portal-feedback-dialog\" id=\"portalLoginFeedbackDialog\" hidden>\n                <div class=\"portal-feedback-card\">\n                    <button class=\"portal-feedback-close\" type=\"button\" id=\"portalLoginFeedbackClose\" aria-label=\"Close\">&times;<\/button>\n                    <p class=\"portal-feedback-kicker\">Portal feedback<\/p>\n                    <h2>Report an issue or suggestion<\/h2>\n                    <form id=\"portalLoginFeedbackForm\">\n                        <input type=\"hidden\" name=\"nonce\" value=\"3bb271336a\">\n                        <label><span>Name<\/span><input type=\"text\" name=\"name\" id=\"portalLoginFeedbackName\" required><\/label>\n                        <label><span>Email<\/span><input type=\"email\" name=\"email\" id=\"portalLoginFeedbackEmail\" required><\/label>\n                        <div class=\"portal-feedback-type\">\n                            <label><input type=\"radio\" name=\"type\" value=\"issue\" checked> <span>Issue<\/span><\/label>\n                            <label><input type=\"radio\" name=\"type\" value=\"suggestion\"> <span>Suggestion<\/span><\/label>\n                        <\/div>\n                        <label><span>Details<\/span><textarea name=\"message\" rows=\"4\" required><\/textarea><\/label>\n                        <button class=\"portal-feedback-submit\" type=\"submit\">Submit<\/button>\n                    <\/form>\n                    <p class=\"portal-feedback-result\" id=\"portalLoginFeedbackResult\" aria-live=\"polite\"><\/p>\n                <\/div>\n            <\/section>\n            <script>\n                (function() {\n                    var notice = document.getElementById(\"portalRolloutNotice\");\r\n                    var closeNotice = document.getElementById(\"portalRolloutClose\");\r\n                    var continueNotice = document.getElementById(\"portalRolloutAction\");\r\n                    var noticeStorageKey = \"ocLeoPortalRolloutNoticeDismissedV2\";\n                    var noticeExpiresAt = new Date(\"2026-09-30T23:59:59-04:00\").getTime();\n                    var now = Date.now();\r\n                    var dismissed = false;\r\n                    try {\r\n                        dismissed = window.localStorage && localStorage.getItem(noticeStorageKey) === \"1\";\r\n                    } catch (error) {}\r\n                    function dismissNotice() {\r\n                        if (notice) {\r\n                            notice.hidden = true;\r\n                        }\r\n                        try {\r\n                            if (window.localStorage) {\r\n                                localStorage.setItem(noticeStorageKey, \"1\");\r\n                            }\r\n                        } catch (error) {}\r\n                    }\r\n                    if (notice && (now > noticeExpiresAt || dismissed)) {\r\n                        notice.hidden = true;\r\n                    }\r\n                    if (closeNotice) {\r\n                        closeNotice.addEventListener(\"click\", dismissNotice);\r\n                    }\r\n                    if (continueNotice) {\r\n                        continueNotice.addEventListener(\"click\", dismissNotice);\r\n                    }\r\n                    var password = document.getElementById(\"oc-leo-login-password\");\r\n                    var toggle = document.getElementById(\"oc-leo-login-password-toggle\");\r\n                    if (!password || !toggle) return;\r\n                    toggle.addEventListener(\"click\", function() {\n                        var showing = password.type === \"text\";\n                        password.type = showing ? \"password\" : \"text\";\n                        toggle.textContent = showing ? \"Show\" : \"Hide\";\n                    });\n\n                    var feedbackOpen = document.getElementById(\"portalLoginFeedbackOpen\");\n                    var feedbackDialog = document.getElementById(\"portalLoginFeedbackDialog\");\n                    var feedbackClose = document.getElementById(\"portalLoginFeedbackClose\");\n                    var feedbackForm = document.getElementById(\"portalLoginFeedbackForm\");\n                    var feedbackResult = document.getElementById(\"portalLoginFeedbackResult\");\n                    var feedbackEndpoint = \"https:\/\/ocdany.com\/portal\/index.php?rest_route=\/oc-intel-portal\/v1\/feedback\";\n                    function closeFeedback() {\n                        if (feedbackDialog) feedbackDialog.hidden = true;\n                    }\n                    if (feedbackOpen && feedbackDialog) {\n                        feedbackOpen.addEventListener(\"click\", function() {\n                            var emailField = document.getElementById(\"oc-leo-login-email\");\n                            var feedbackEmail = document.getElementById(\"portalLoginFeedbackEmail\");\n                            if (emailField && feedbackEmail && emailField.value) feedbackEmail.value = emailField.value;\n                            feedbackDialog.hidden = false;\n                        });\n                    }\n                    if (feedbackClose) feedbackClose.addEventListener(\"click\", closeFeedback);\n                    if (feedbackDialog) {\n                        feedbackDialog.addEventListener(\"click\", function(event) {\n                            if (event.target === feedbackDialog) closeFeedback();\n                        });\n                    }\n                    if (feedbackForm) {\n                        feedbackForm.addEventListener(\"submit\", function(event) {\n                            event.preventDefault();\n                            if (feedbackResult) feedbackResult.textContent = \"Submitting...\";\n                            var formData = new FormData(feedbackForm);\n                            var payload = {};\n                            formData.forEach(function(value, key) { payload[key] = value; });\n                            fetch(feedbackEndpoint, {\n                                method: \"POST\",\n                                headers: { \"Content-Type\": \"application\/json\" },\n                                body: JSON.stringify(payload)\n                            }).then(function(response) {\n                                return response.text().then(function(text) {\n                                    var data = {};\n                                    try {\n                                        data = text ? JSON.parse(text) : {};\n                                    } catch (parseError) {\n                                        throw new Error(text || \"Submission returned an invalid response\");\n                                    }\n                                    if (!response.ok) throw new Error(data && data.message ? data.message : \"Submission failed\");\n                                    return data;\n                                });\n                            }).then(function(data) {\n                                if (feedbackResult) feedbackResult.textContent = data.message || \"Submitted.\";\n                                feedbackForm.reset();\n                            }).catch(function(error) {\n                                if (feedbackResult) feedbackResult.textContent = error.message || \"Could not submit feedback.\";\n                            });\n                        });\n                    }\n                })();\n            <\/script>\n        <\/main>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-25","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=25"}],"version-history":[{"count":0,"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=\/wp\/v2\/pages\/25\/revisions"}],"wp:attachment":[{"href":"https:\/\/ocdany.com\/portal\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}