Mohammad Jafari | Kermanshah | Shot to death | Witness Report Incorporated {"@context":"https://schema.org","@type":"ProfilePage","@id":"https://witness.report/people/8e0beb4a-f06c-11f0-87d3-560003f1f421/mohammad-jafari#profile","url":"https://witness.report/people/8e0beb4a-f06c-11f0-87d3-560003f1f421/mohammad-jafari","name":"Mohammad Jafari | Kermanshah | Shot to death | Witness Report Incorporated","mainEntity":{"@type":"Person","@id":"https://witness.report/people/8e0beb4a-f06c-11f0-87d3-560003f1f421/mohammad-jafari#person","name":"Mohammad Jafari","identifier":"8e0beb4a-f06c-11f0-87d3-560003f1f421","url":"https://witness.report/people/8e0beb4a-f06c-11f0-87d3-560003f1f421/mohammad-jafari","alternateName":"محمد جعفری","image":"https://witness.report/images/8e0beb4a-f06c-11f0-87d3-560003f1f421.jpg","nationality":["Iranian"],"deathDate":"2026-01-08","description":"Last status: Shot to death | Health: Deceased | City: Kermanshah"},"primaryImageOfPage":{"@type":"ImageObject","contentUrl":"https://witness.report/images/8e0beb4a-f06c-11f0-87d3-560003f1f421.jpg","url":"https://witness.report/images/8e0beb4a-f06c-11f0-87d3-560003f1f421.jpg"}} Home About Tags ShahedSang Iran Massacre 2026 Artist Athlete Blogger CaseNeedsUpdate ChainMurders Disability EnvironmentalActivist HealthcareStaff Journalist LabourActivist Lawyer NonPoliticalCase Photographer Poet PS752Justice ReligiousMinority Student Teacher TheGreenMovement Writer Browse in Advanced Search Get Involved Report New Case Membership Support Our Work Witness Report API News English Persian Advanced Search Search Logout 📞 +61485870004 📞 Call 💬 WhatsApp ✈️ Telegram (function() { const STORAGE_KEY = 'wr_google_id_token_v1'; const clientId = "196042580665-2576hlsgr5kr1qujskevu0ogjc99e0ug.apps.googleusercontent.com"; let googleIdentityPromise = null; window.wrLoadGoogleIdentity = function() { if (!clientId || (window.google && google.accounts && google.accounts.id)) { return Promise.resolve(); } if (googleIdentityPromise) return googleIdentityPromise; googleIdentityPromise = new Promise(function(resolve, reject) { const script = document.createElement('script'); script.src = 'https://accounts.google.com/gsi/client'; script.async = true; script.onload = resolve; script.onerror = reject; document.head.appendChild(script); }); return googleIdentityPromise; }; const loadGoogleOnInteraction = function() { window.wrLoadGoogleIdentity().catch(function() {}); }; document.addEventListener('pointerdown', loadGoogleOnInteraction, { once: true, passive: true }); document.addEventListener('keydown', loadGoogleOnInteraction, { once: true }); window.addEventListener('load', function() { setTimeout(loadGoogleOnInteraction, 1000); }, { once: true }); // Expose for other pages (people.php) to reuse init. window.wrGoogleStorageKey = STORAGE_KEY; const authSlot = document.getElementById('wrNavAuthSlot'); const loginEl = document.getElementById('wrNavGoogleSignIn'); const logoutBtn = document.getElementById('wrNavLogoutBtn'); if (!authSlot || !loginEl || !logoutBtn) return; function base64UrlDecodeToString(s) { try { const b64 = (s || '').replace(/-/g, '+').replace(/_/g, '/'); const padded = b64 + '==='.slice((b64.length + 3) % 4); return atob(padded); } catch (_) { return ''; } } function parseJwtPayload(token) { const parts = (token || '').split('.'); if (parts.length !== 3) return null; const json = base64UrlDecodeToString(parts[1]); if (!json) return null; try { return JSON.parse(json); } catch (_) { return null; } } function hasValidToken() { const token = (localStorage.getItem(STORAGE_KEY) || '').trim(); if (!token) return false; const payload = parseJwtPayload(token); const exp = payload && typeof payload.exp === 'number' ? payload.exp : 0; if (!exp) return false; return (Date.now() / 1000) < (exp - 30); } function setLoggedInUi(isLoggedIn) { if (!clientId) { authSlot.classList.add('d-none'); return; } authSlot.classList.remove('d-none'); logoutBtn.classList.toggle('d-none', !isLoggedIn); loginEl.classList.toggle('d-none', isLoggedIn); } window.wrHandleGoogleCredential = function(response) { const token = response && response.credential ? response.credential : ''; if (!token) return; try { localStorage.setItem(STORAGE_KEY, token); } catch (_) {} // Best-effort: notify server so we can keep an audit record of logins. // (Non-blocking; failures here should not break login UX.) try { fetch('/api/log_login.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }, body: new URLSearchParams({ idToken: token }), credentials: 'same-origin', keepalive: true }).catch(function() {}); } catch (_) {} setLoggedInUi(true); try { window.dispatchEvent(new CustomEvent('wr-google-credential', { detail: { token } })); } catch (_) {} }; window.wrEnsureGoogleInit = function() { if (!clientId) return; if (window.wrGoogleInitDone) return; if (!window.google || !google.accounts || !google.accounts.id) return; google.accounts.id.initialize({ client_id: clientId, callback: window.wrHandleGoogleCredential, ux_mode: 'popup', itp_support: true }); window.wrGoogleInitDone = true; }; function initLoginButtonWhenReady() { const loggedIn = hasValidToken(); if (!loggedIn) { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} } if (!clientId) { setLoggedInUi(loggedIn); return; } if (!window.google || !google.accounts || !google.accounts.id) { setTimeout(initLoginButtonWhenReady, 50); return; } window.wrEnsureGoogleInit(); if (!loggedIn) { try { google.accounts.id.renderButton(loginEl, { theme: 'outline', size: 'medium' }); } catch (_) {} } setLoggedInUi(loggedIn); } logoutBtn.addEventListener('click', function() { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} setLoggedInUi(false); window.location.reload(); }); initLoginButtonWhenReady(); })(); Mohammad Jafari Mahour Jafari محمد جعفری ماهور جعفری Nationality : Iranian Age: 42 (1984) Status: Shot to death Health: Deceased2026-01-08 Share: X Telegram WhatsApp Bluesky | Contribute: Help Complete This Report UUID: 8e0beb4a-f06c-11f0-87d3-560003f1f421 Short link: https://sml.yt/8zo0t Copy (function() { const copyButton = document.querySelector('.wr-short-link__copy'); if (!copyButton) return; copyButton.addEventListener('click', async function() { const url = copyButton.getAttribute('data-copy-url') || ''; try { await navigator.clipboard.writeText(url); } catch (error) { const tempInput = document.createElement('textarea'); tempInput.value = url; tempInput.setAttribute('readonly', ''); tempInput.style.position = 'fixed'; tempInput.style.opacity = '0'; document.body.appendChild(tempInput); tempInput.select(); const copied = document.execCommand('copy'); tempInput.remove(); if (!copied) return; } const label = copyButton.querySelector('span'); if (label) { label.textContent = 'Copied'; window.setTimeout(function() { label.textContent = 'Copy'; }, 1500); } }); })(); Date: 2026-01-13 City: KermanshahProvince: KermanshahCountry: IranHealth Status: Deceased2026-01-08 Status: Shot to deathOn the evening of Thursday, 18 Dey 1404 (8 January 2026), this citizen from the city of Kermanshah was killed by direct gunfire from government forces. A 42-year-old citizen, Mohammad Jafari, was fatally shot on Golsorkh Street in Kermanshah. He succumbed to severe injuries and significant blood loss.The incident occurred around 8:30 PM when Mohammad was shot on Golsorkh Street. It has been reported that security forces, while pursuing him, fired two bullets from behind, hitting his back and left side.He experienced severe bleeding for approximately fifteen minutes in front of his home. His friends, hoping he was still alive, transported his body to Shahid Kermanshah Hospital, but efforts to save him were unsuccessful. His passing was communicated to his wife. Two days later, his body was returned to his family and was buried in Kermanshah on 21 Dey.It has been reported that the family was instructed to state "unknown" as the cause of death on the certificate and not to mention who fired the shots.Mohammad Jafari had an interest in music and followed political news. Three days before his death, he had published his last post, praising the youths in Abdanan, Ilam Province, who scattered rice from the Ofogh Kourosh store into the air. The video of these youths was widely shared on social media. On the night of 16 Dey, protesters attacked the Ofogh Kourosh store in Abdanan, which is affiliated with the Islamic Revolutionary Guard Corps. محمد جعفری، شهروند ۴۲ ساله، در خیابان گلسرخ کرمانشاه هدف شلیک مستقیم قرار گرفت و به دلیل شدت جراحات و خونریزی شدید جان باخت.محمد در حدود ساعت ۸:۳۰ شب در خیابان گلسرخ کرمانشاه مورد تیراندازی قرار گرفت. گزارش شده است که نیروهای امنیتی هنگام تعقیب او از پشت با دو گلوله جنگی به او شلیک کردند و گلوله ها به کمر و پهلوی سمت چپ او برخورد کرده بود.او حدود پانزده دقیقه مقابل خانه اش به شدت خونریزی کرد. دوستانش که امیدوار بودند هنوز زنده باشد، پیکرش را به بیمارستان شهدای کرمانشاه منتقل کردند، اما تلاش ها نتیجه ای نداشت. خبر درگذشت او به همسرش اطلاع داده شد. دو روز بعد، پیکر او به خانواده تحویل داده شد و در 21 دی ماه در کرمانشاه به خاک سپرده شد.گزارش شده است که به خانواده گفته شده بود در گواهی علت مرگ بنویسند "نامشخص" و ذکر نکنند چه کسی شلیک کرده است.محمد جعفری به موسیقی علاقه داشت و اخبار سیاسی را دنبال می کرد. او سه روز پیش از کشته شدنش آخرین پست خود را منتشر کرده بود و در آن جوانانی را ستوده بود که در شهر آبدانان در استان ایلام برنج فروشگاه افق کوروش را در هوا پراکنده می کردند. ویدیوی این جوانان بارها در شبکه های اجتماعی منتشر شده بود. معترضان در شب ۱۶ دی در آبدانان به فروشگاه افق کوروش وابسته به سپاه پاسداران حمله کردند. Maybe you’re looking for: Mohammad Jafari محمد جعفری More people in Kermanshah, Shot to death Sajad Feyzi سجاد فیضی Erfan Jameshourani عرفان جامه شورانی Behrouz Safaie بهروز صفایی Complete list ... Links کشته‌شدگان اعتراضات دی ۱۴۰۴ news The report Identities confirmed and accounts compiled by BBC Persian regarding those killed in Dey 1404 (January 2026). Help Complete This Report with Your Input برای تکمیل این گزارش، اطلاعات خود را بنویسید. What should be corrected or added? چه چیزی باید اصلاح یا اضافه شود؟ Send updateارسال به‌روزرسانی To send a correction or message, please sign in with Google. No subscription is needed. برای ارسال اصلاحیه یا پیام، لطفاً با حساب گوگل وارد شوید. نیازی به اشتراک نیست. (function() { const clientId = "196042580665-2576hlsgr5kr1qujskevu0ogjc99e0ug.apps.googleusercontent.com"; const signInEl = document.getElementById('wrGoogleSignIn'); const formEl = document.getElementById('wrErrorReportForm'); const tokenEl = document.getElementById('wrGoogleIdToken'); const textareaEl = document.getElementById('wrReportText'); const submitBtn = document.getElementById('wrSubmitReportBtn'); const statusEl = document.getElementById('wrReportStatus'); const loginHintEl = document.getElementById('wrReportLoginHint'); if (!clientId || !signInEl || !formEl || !tokenEl) return; const STORAGE_KEY = (window.wrGoogleStorageKey || 'wr_google_id_token_v1'); function base64UrlDecodeToString(s) { try { const b64 = (s || '').replace(/-/g, '+').replace(/_/g, '/'); const padded = b64 + '==='.slice((b64.length + 3) % 4); const binary = atob(padded); // Convert binary -> UTF-8 const bytes = Uint8Array.from(binary, c => c.charCodeAt(0)); return new TextDecoder('utf-8', { fatal: false }).decode(bytes); } catch (_) { return ''; } } function parseJwtPayload(token) { const parts = (token || '').split('.'); if (parts.length !== 3) return null; const json = base64UrlDecodeToString(parts[1]); if (!json) return null; try { return JSON.parse(json); } catch (_) { return null; } } function getStoredValidToken() { const t = (localStorage.getItem(STORAGE_KEY) || '').trim(); if (!t) return ''; const payload = parseJwtPayload(t); const exp = payload && typeof payload.exp === 'number' ? payload.exp : 0; // Consider it expired 30s early to avoid edge cases. if (!exp || (Date.now() / 1000) >= (exp - 30)) return ''; return t; } function clearStoredToken() { try { localStorage.removeItem(STORAGE_KEY); } catch (_) {} } function setFormEnabled(enabled) { const on = !!enabled; if (textareaEl) textareaEl.disabled = !on; if (submitBtn) submitBtn.disabled = !on; } function showLoginPrompt() { setFormEnabled(false); tokenEl.value = ''; if (signInEl) signInEl.classList.remove('d-none'); if (loginHintEl) loginHintEl.classList.remove('d-none'); setStatus('', ''); } function showReportFormWithToken(token) { tokenEl.value = token; if (signInEl) signInEl.classList.add('d-none'); if (loginHintEl) loginHintEl.classList.add('d-none'); setFormEnabled(true); setStatus('', ''); } function setStatus(html, kind) { if (!statusEl) return; statusEl.className = kind ? ('alert alert-' + kind) : ''; statusEl.innerHTML = html || ''; } function initWhenReady() { // If we already have a valid token from a previous page, reuse it. const existing = getStoredValidToken(); if (existing) { showReportFormWithToken(existing); return; } else { clearStoredToken(); showLoginPrompt(); } // Initialize (once) via header helper, then render the button here. function renderWhenReady() { if (!window.google || !google.accounts || !google.accounts.id) { setTimeout(renderWhenReady, 50); return; } if (typeof window.wrEnsureGoogleInit === 'function') { try { window.wrEnsureGoogleInit(); } catch (_) {} } else { // Fallback if header isn't present for some reason. try { google.accounts.id.initialize({ client_id: clientId, callback: window.wrHandleGoogleCredential || function() {}, ux_mode: 'popup', itp_support: true }); } catch (_) {} } try { google.accounts.id.renderButton(signInEl, { theme: 'outline', size: 'large' }); } catch (_) {} } renderWhenReady(); } initWhenReady(); // If user logs in from the navbar, this page can react immediately. window.addEventListener('wr-google-credential', function(e) { const token = e && e.detail && e.detail.token ? String(e.detail.token) : ''; if (!token) return; showReportFormWithToken(token); if (textareaEl) textareaEl.focus(); }); formEl.addEventListener('submit', async function(e) { e.preventDefault(); setStatus('Sending…', 'info'); try { const formData = new FormData(formEl); const res = await fetch(formEl.action, { method: 'POST', body: formData, credentials: 'same-origin' }); const data = await res.json().catch(() => null); if (!res.ok || !data || !data.ok) { const msg = (data && data.error) ? data.error : 'Could not submit your report. Please try again later.'; setStatus(msg, 'warning'); // If auth failed (expired/invalid token), clear and show sign-in. const lower = (msg || '').toLowerCase(); if (lower.includes('token') || lower.includes('google') || res.status === 401 || res.status === 403) { clearStoredToken(); showLoginPrompt(); } return; } setStatus('Thank you. Your message was sent for review.', 'success'); if (textareaEl) textareaEl.value = ''; if (textareaEl) textareaEl.disabled = true; if (submitBtn) submitBtn.disabled = true; formEl.classList.add('d-none'); } catch (err) { setStatus('Network error. Please try again.', 'warning'); } }); })(); Once you submit your report, we carefully review and publish it as the latest verified update on the detainee's case, ensuring that their situation remains visible, documented, and accessible to the public. By keeping accurate and up to date information online, Witness Report helps prevent cases from being forgotten, strengthens public awareness, and reinforces accountability. This process offers reassurance that your loved one's story continues to be seen, acknowledged, and remembered. Media WR News X (Twitter) Instagram Telegram Channel Thank You Mardom Fundation EasyHostWay.AU The Joint Action Group Get Involved Report New Case Membership Support Our Work Witness Report API About Us Privacy Policy Recently Viewed © 2022-2026 Witness Report Incorporated. Established 2022. All rights reserved. (function() { const thankYouLinks = document.querySelectorAll('[data-thank-you-login-only]'); let isLoggedIn = false; try { const storageKey = window.wrGoogleStorageKey || 'wr_google_id_token_v1'; const token = (localStorage.getItem(storageKey) || '').trim(); const tokenParts = token.split('.'); if (tokenParts.length === 3) { const encodedPayload = tokenParts[1].replace(/-/g, '+').replace(/_/g, '/'); const paddedPayload = encodedPayload + '==='.slice((encodedPayload.length + 3) % 4); const payload = JSON.parse(atob(paddedPayload)); isLoggedIn = typeof payload.exp === 'number' && (Date.now() / 1000) < (payload.exp - 30); } } catch (error) { isLoggedIn = false; } if (isLoggedIn) { thankYouLinks.forEach(function(link) { link.classList.remove('d-none'); }); } const cookieName = 'wr_recent_profiles'; const recentSections = document.querySelectorAll('[data-recent-profiles]'); function readRecentProfiles() { const cookie = document.cookie.split('; ').find(function(item) { return item.indexOf(cookieName + '=') === 0; }); if (!cookie) return []; try { const profiles = JSON.parse(decodeURIComponent(cookie.substring(cookieName.length + 1))); if (!Array.isArray(profiles)) return []; return profiles.filter(function(profile) { if (!profile || typeof profile.name !== 'string' || typeof profile.path !== 'string') return false; try { const url = new URL(profile.path, window.location.origin); return url.origin === window.location.origin && url.pathname.indexOf('/people/') === 0; } catch (error) { return false; } }).slice(0, 5); } catch (error) { return []; } } const profiles = readRecentProfiles(); const currentProfile = document.getElementById('wrCurrentProfileVisit'); if (currentProfile) { const currentPath = currentProfile.dataset.profilePath || ''; const currentName = currentProfile.dataset.profileName || ''; if (currentPath && currentName) { const existingIndex = profiles.findIndex(function(profile) { return profile.path === currentPath; }); if (existingIndex !== -1) profiles.splice(existingIndex, 1); profiles.unshift({ name: currentName, path: currentPath }); profiles.splice(5); const cookieValue = encodeURIComponent(JSON.stringify(profiles)); document.cookie = cookieName + '=' + cookieValue + '; Path=/; Max-Age=7776000; SameSite=Lax' + (window.location.protocol === 'https:' ? '; Secure' : ''); } } recentSections.forEach(function(section) { const recentList = section.querySelector('[data-recent-profiles-list]'); if (!recentList) return; profiles.forEach(function(profile) { const item = document.createElement('li'); const link = document.createElement('a'); link.href = profile.path; link.textContent = profile.name; item.appendChild(link); recentList.appendChild(item); }); if (profiles.length) section.classList.remove('d-none'); }); })(); window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-L6GJNEC9YW'); // Prevent navbar from collapsing when dropdown is clicked document.addEventListener('DOMContentLoaded', function() { const dropdown = document.querySelector('.navbar .dropdown'); if (dropdown) { dropdown.addEventListener('click', function(e) { e.stopPropagation(); }); } }); if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/sw.js', { scope: '/' }).catch(function(err) { console.warn('Service worker registration failed:', err); }); }); }