Mohammadali Zahmatkesh | Shiraz | Released on bail | Witness Report Incorporated {"@context":"https://schema.org","@type":"ProfilePage","@id":"https://witness.report/people/0090baa8-bfcb-11ed-805a-560003f1f421/mohammadali-zahmatkesh#profile","url":"https://witness.report/people/0090baa8-bfcb-11ed-805a-560003f1f421/mohammadali-zahmatkesh","name":"Mohammadali Zahmatkesh | Shiraz | Released on bail | Witness Report Incorporated","mainEntity":{"@type":"Person","@id":"https://witness.report/people/0090baa8-bfcb-11ed-805a-560003f1f421/mohammadali-zahmatkesh#person","name":"Mohammadali Zahmatkesh","identifier":"0090baa8-bfcb-11ed-805a-560003f1f421","url":"https://witness.report/people/0090baa8-bfcb-11ed-805a-560003f1f421/mohammadali-zahmatkesh","alternateName":"محمدعلی زحمتکش","image":"https://witness.report/images/0090baa8-bfcb-11ed-805a-560003f1f421.GIF","nationality":["Iranian"],"description":"Last status: Released on bail | Health: Unknown | City: Shiraz"},"primaryImageOfPage":{"@type":"ImageObject","contentUrl":"https://witness.report/images/0090baa8-bfcb-11ed-805a-560003f1f421.GIF","url":"https://witness.report/images/0090baa8-bfcb-11ed-805a-560003f1f421.GIF"}} Home About Tags ShahedSang 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(); })(); Mohammadali Zahmatkesh Teacher محمدعلی زحمتکش Nationality : Iranian Age: 61 (1965) Status: Released on bail Health: Unknown Share: X Telegram WhatsApp Bluesky | Contribute: Help Complete This Report UUID: 0090baa8-bfcb-11ed-805a-560003f1f421 Short link: https://sml.yt/11die 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-06-16 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: Released on bailThis Teachers' union activist, who has been in temporary detention since April this year, was temporarily released from Adel Abad Prison in Shiraz on a bail of 700 million tomans. On 20 November 2023, without prior notice or announcement for attendance and introduction for the execution of sentences, the five-year prison sentence of Mohammad Ali Zahmatkesh was enforced, and he was arrested at his home.Mohammad Ali Zahmatkesh was born in 1964 in Shiraz. In 1985, he served at the front for three months and sustained chemical injuries as well as shrapnel wounds. From 1986 to 2014, he worked as a teacher and was an active member of the teachers' union in Lamerd and later in Shiraz. He was first summoned by the Intelligence Organization of the Revolutionary Guard on 12 November 2018 and was arrested due to non-cooperation. After 11 days in solitary confinement, he was transferred to Adelabad Prison in Shiraz and released after five days. On 28 January 2019, he was tried at the First Branch of the Revolutionary Court in Shiraz, presided over by Judge Mahmoud Sadati, and was sentenced to two years in prison and one year of exile to Arsanjan for propaganda against the regime and insulting officials. The appeals court reduced the two-year sentence to eight months and rejected the exile order, leading to his release on 16 September 2019. On 26 April 2020, due to pressure from security forces on the bail provider who had released him, he voluntarily returned to prison and went back to Adelabad.On 14 February 2024, Mohammad Ali Zahmatkesh was released after an electronic ankle monitor was installed. در تاریخ ۲۹ آبان ۱۴۰۲، بدون اطلاع قبلی و اعلام برای حضور و معرفی جهت اجرای احکام، احکام ۵ سال حبس آقای محمدعلی زحمتکش اجرا و وی در منزل خود دستگیر شد.محمدعلی زحمتکش در سال ۱۳۴۳ در شیراز به دنیا آمد. در سال ۱۳۶۴ به مدت سه ماه به جبهه رفت و دچار مجروحیت شیمیایی و مجروحیت با ترکش خمپاره شد. از سال ۱۳۶۵ تا ۱۳۹۳ در لامرد و سپس شیراز به عنوان معلم و فعال صنفی معلمان فعالیت می کرد. وی نخستین بار در تاریخ ۲۱ آبان ۱۳۹۷ توسط اطلاعات سپاه احضار شد و به دلیل عدم همکاری، بازداشت گردید. پس از ۱۱ روز انفرادی، به زندان عادل آباد شیراز منتقل و پس از ۵ روز آزاد شد. در تاریخ ۸ بهمن ۱۳۹۷ در شعبه اول دادگاه انقلاب شیراز به ریاست قاضی محمود ساداتی محاکمه و به اتهام تبلیغ علیه نظام و توهین به مقامات به ۲ سال حبس تعزیری و یک سال تبعید به ارسنجان محکوم شد. دادگاه تجدید نظر، ۲ سال حبس را به ۸ ماه کاهش داد و حکم تبعید را رد کرد و محمدعلی زحمتکش در تاریخ ۲۵ شهریور ۱۳۹۸ آزاد شد. در تاریخ ۷ اردیبهشت ۱۳۹۹، به دلیل فشاری که نیروهای امنیتی به وثیقه گذاری که او را آزاد کرده بود، وارد کردند، دوباره خود را به زندان معرفی کرد و به زندان عادل آباد بازگشت.در تاریخ ۲۳ بهمن ۱۴۰۲، محمدعلی زحمتکش پس از نصب پابند الکترونیکی آزاد شد. More people in Shiraz, Released on bail Iman Shahvandi ایمان شهوندی Mehdi Fathi مهدی فتحی Mehdi Haddadi مهدی حدادی Complete list ... History: Date: 2026-04-15 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: KidnappedThe new wave of arrests targeting civil and labor activists in Iran continues, and in this context, he was arrested by the forces of the Islamic Republic of Iran and transferred to an undisclosed location. Date: 2024-02-15 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: House ArrestOn the 12 of February 2024, he was released from the political prisoners and teachers' trade union activists after the installation of an electronic shackle in Adel Abad prison in Shiraz. Date: 2024-01-29 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: SummonedFollowing the violation of his verdict by the Supreme Court of the country, he was sentenced to two years in prison by the first branch of the Court of Appeal of Fars province. Date: 2023-12-11 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: ImprisonedA teachers union activist was sent on a short leave from Adel Abad prison in Shiraz. Date: 2023-11-21 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: ImprisonedOn November 20, 2023 he was arrested and taken to serve his 5-years sentence Without prior notice and notification for attendance. Date: 2023-10-25 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: Exile to another cityMohammad Ali Zahmatkesh was sentenced to imprisonment, exile and additional punishments. Date: 2023-03-11 City: ShirazProvince: FarsCountry: IranHealth Status: Unknown Status: Released 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 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); }); }); }