Zákon o ochraně utajovaných skutečností a o změně některých zákonů (úplné znění)

Předpis č. 148/1998 Sb.

Znění od 1. 1. 2014

148/1998 Sb. Zákon o ochraně utajovaných skutečností a o změně některých zákonů

148

ZÁKON

ze dne 11. června 1998

o ochraně utajovaných skutečností a o změně některých zákonů

Parlament se usnesl na tomto zákoně České republiky:

ČÁST TŘETÍ

HLAVA DRUHÁ

§ 83

Zákon č. 166/1993 Sb., o Nejvyšším kontrolním úřadu, ve znění zákona č. 331/1993 Sb., zákona č. 117/1994 Sb., zákona č. 224/1994 Sb., zákona č. 58/1995 Sb., zákona č. 236/1995 Sb. a nálezu Ústavního soudu České republiky č. 296/1995 Sb., se mění takto:

Ustanovení § 21 písm. c) včetně poznámky č. 4) zní:

"c) seznamovat se s utajovanými skutečnostmi, prokáží-li se osvědčením pro příslušný stupeň utajení těchto skutečností, vydaným podle zvláštního zákona.4)

4) Zákon č. 148/1998 Sb., o ochraně utajovaných skutečností a o změně některých zákonů.".

HLAVA TŘETÍ

§ 84

Zákon č. 552/1991 Sb., o státní kontrole, ve znění zákona č. 166/1993 Sb., se mění takto:

Ustanovení § 11 písm. c) včetně poznámky č. 4) zní:

"c) seznamovat se s utajovanými skutečnostmi, prokáží-li se osvědčením pro příslušný stupeň utajení těchto skutečností, vydaným podle zvláštního zákona.4)

4) Zákon č. 148/1998 Sb., o ochraně utajovaných skutečností a o změně některých zákonů.".

HLAVA PÁTÁ

§ 86

Zákon č. 141/1961 Sb., o trestním řízení soudním (trestní řád), ve znění zákona č. 57/1965 Sb., zákona č. 58/1969 Sb., zákona č. 149/1969 Sb., zákona č. 48/1973 Sb., zákona č. 29/1978 Sb., zákona č. 43/1980 Sb., zákona č. 159/1989 Sb., zákona č. 178/1990 Sb., zákona č. 303/1990 Sb., zákona č. 558/1991 Sb., zákona č. 25/1993 Sb., zákona č. 115/1993 Sb., zákona č. 292/1993 Sb., zákona č. 154/1994 Sb., nálezu Ústavního soudu České republiky č. 214/1994 Sb., nálezu Ústavního soudu České republiky č. 8/1995 Sb., zákona č. 152/1995 Sb., zákona č. 150/1997 Sb. a zákona č. 209/1997 Sb., se mění takto:

1. V § 8 odst. 3 se slova "státní a hospodářské tajemství" nahrazují slovy "tajnost utajovaných skutečností chráněných zvláštním zákonem".

2. V § 35 se vkládá nový odstavec 3, který zní:

"(3) V trestním řízení, ve kterém jsou probírány utajované skutečnosti chráněné zvláštním zákonem, je orgán činný v trestním řízení povinen obhájce poučit podle takového zákona. Stejně postupuje v případě osob, jejichž účast na řízení nelze vyloučit. O provedeném poučení učiní záznam do spisu.".

3. V § 50 odstavec 3 zní:

"(3) Zmocněncem zúčastněné osoby a poškozeného v trestním řízení, ve kterém jsou probírány utajované skutečnosti chráněné zvláštním zákonem, může být pouze určená osoba podle zvláštního zákona nebo osoba podle takového zákona poučená.".

4. V § 65 odstavec 5 zní:

"(5) Při povolování nahlížet do spisů je nutno učinit takové opatření, aby byla zachována tajnost utajovaných skutečností chráněných zvláštním zákonem.".

5. V § 99 odst. 1 se slova "které tvoří státní tajemství," nahrazují slovy "týkajících se utajovaných skutečností chráněných zvláštním zákonem".

6. V § 99 odst. 3 ve větě druhé se slova "skutečnostech tvořících předmět služebního tajemství" nahrazují slovy "utajovaných skutečnostech klasifikovaných ve zvláštním zákoně stupněm utajení "Důvěrné" nebo "Vyhrazené".".

7. V § 200 odst. 1 se slovo "tajemství" nahrazuje slovy "utajované skutečnosti".

8. V § 201 odst. 2 poslední větě se slova "tajemství chráněného" nahrazují slovy "utajovaných skutečností chráněných".

9. V § 201 odst. 3 se slova "státního, hospodářského nebo služebního tajemství" nahrazují slovy "utajovaných skutečností chráněných zvláštním zákonem".

HLAVA ŠESTÁ

§ 87

Zákon č. 2/1969 Sb., o zřízení ministerstev a jiných ústředních orgánů státní správy České republiky, ve znění zákona č. 34/1970 Sb., zákona č. 147/1970 Sb., zákona č. 125/1973 Sb., zákona č. 25/1976 Sb., zákona č. 118/1983 Sb., zákona č. 60/1988 Sb., zákona č. 173/1989 Sb., zákonného opatření Předsednictva České národní rady č. 9/1990 Sb., zákona č. 93/1990 Sb., zákona č. 126/1990 Sb., zákona č. 203/1990 Sb., zákona č. 288/1990 Sb., zákonného opatření Předsednictva České národní rady č. 305/1990 Sb., zákona č. 575/1990 Sb., zákona č. 173/1991 Sb., zákona č. 283/1991 Sb., zákona č. 19/1992 Sb., zákona č. 23/1992 Sb., zákona č. 103/1992 Sb., zákona č. 167/1992 Sb., zákona č. 239/1992 Sb., zákonného opatření Předsednictva České národní rady č. 350/1992 Sb., zákona č. 358/1992 Sb., zákona č. 359/1992 Sb., zákona č. 474/1992 Sb., zákona č. 548/1992 Sb., zákona č. 21/1993 Sb., zákona č. 166/1993 Sb., zákona č. 285/1993 Sb., zákona č. 47/1994 Sb., zákona č. 89/1995 Sb., zákona č. 289/1995 Sb., zákona č. 135/1996 Sb., zákona č. 272/1996 Sb., zákona č. 152/1997 Sb. a zákona č. 15/1998 Sb., se mění takto:

1. V § 2 odst. 1 se za bodem 9 tečka nahrazuje čárkou a doplňuje se bod 10, který zní:

"10. Národní bezpečnostní úřad.".

2. V § 12 odst. 1 se písmeno l) vypouští a za písmenem k) se čárka nahrazuje tečkou.

ČÁST ČTVRTÁ

§ 88

Zrušovací ustanovení

Zrušuje se zákon č. 102/1971 Sb., o ochraně státního tajemství, ve znění zákona č. 383/1990 Sb. a zákona č. 558/1991 Sb.

§ 89

Účinnost

Tento zákon nabývá účinnosti prvním dnem čtvrtého kalendářního měsíce po dni jeho vyhlášení, s výjimkou § 7, který nabývá účinnosti třicátým dnem po dni jeho vyhlášení.

Přechodná ustanovení zavedena zákonem č. 363/2000 Sb. Čl. II

1. Bezpečnostní prověrka provedená přede dnem nabytí účinnosti tohoto zákona podle zákona č. 148/1998 Sb., ve znění pozdějších předpisů, se po dobu platnosti osvědčení považuje za bezpečnostní prověrku provedenou podle zákona č. 148/1998 Sb., ve znění pozdějších předpisů a ve znění tohoto zákona.

2. Bezpečnostní prověrka zahájená přede dnem nabytí účinnosti tohoto zákona podle zákona č. 148/1998 Sb., ve znění pozdějších předpisů, se dokončí podle zákona č. 148/1998 Sb., ve znění pozdějších předpisů a ve znění tohoto zákona, přičemž se nepřihlíží k údajům a zjištěním, která nejsou podle zákona č. 148/1998 Sb., ve znění pozdějších předpisů a ve znění tohoto zákona, pro provedení bezpečnostní prověrky požadována.

3. U zahájené bezpečnostní prověrky II. stupně osoby uvedené v § 8a odst. 1 předá Úřad bezpečnostní spis k navrhované osobě, který k této osobě založil, do 30 dnů ode dne nabytí účinnosti tohoto zákona Ministerstvu.

Přechodná ustanovení zavedena zákonem č. 310/2002 Sb. Čl. II

(1) Tento zákon se vztahuje i na stížnosti, které nebyly rozhodnuty do dne účinnosti tohoto zákona.

(2) Osvědčení vydaná podle dosavadní právní úpravy zůstávají v platnosti do doby v nich uvedené a jsou považována za osvědčení vydaná podle tohoto zákona.

(3) Citlivé činnosti může vykonávat i fyzická osoba, která není držitelem platného dokladu, a to nejdéle po dobu dvou let ode dne účinnosti tohoto zákona, pokud do tří měsíců ode dne účinnosti tohoto zákona nebo do tří měsíců od zahájení výkonu citlivé činnosti bude podána žádost podle § 81f.

Přechodné ustanovení zavedeno zákonem č. 444/2005 Sb.

Čl. XXI předpisu č. 444/2005 Sb., který nabyl účinnosti 1. 1. 2006, nelze zapracovat, protože § 72 odst. 3 a § 81r odst. 3 byl zrušen novelou č. 413/2005 Sb.

Přechodné ustanovení zavedeno zákonem č. 342/2006 Sb.

Čl. XXX předpisu č. 342/2006 Sb., který nabyl účinnosti 3. 7. 2006, nelze zapracovat, protože § 8 byl zrušen novelou č. 413/2005 Sb.

Zeman v. r.

Havel v. r.

Tošovský v. r.

Skrýt změny zákona Legenda text přidán text vypuštěn
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }