Close Menu
    Facebook X (Twitter) Instagram
    • Home
    • Contact Us
    • About Us
    • Privacy Policy
    • Terms Of Service
    • Advertisement
    Saturday, July 4
    Facebook X (Twitter) Instagram Pinterest Vimeo
    ABS Africa TV
    • Breaking News
    • Trending
    • Africa News
    • World News
    • Features
    • Technology
    • Sports
    • Politics
    • More
      • Culture
      • Lifestyle
      • Travel
      • Business
      • Environment
      • Legal
      • Health
      • Cameroon
      • Ambazonia
      • AfroSingles
      • Environ/Climate
      • Editorial
      • The Leak Magazine
    • Donate
    Subscription
    ABS Africa TV
    Home»Politics»Justin Muturi demands action against UDA’s Hassan Omar over divisive Mt Kenya remarks
    Politics

    Justin Muturi demands action against UDA’s Hassan Omar over divisive Mt Kenya remarks

    Chukwu GodloveBy Chukwu GodloveJuly 4, 2026No Comments9 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    Justin Muturi demands action against UDA’s Hassan Omar over divisive Mt Kenya remarks
    Share
    Facebook Twitter LinkedIn Pinterest Email
    Post Views: 22

    Justin Muturi demands action against UDA’s Hassan Omar over divisive Mt Kenya remarks

    Justin Muturi demands action against UDA’s Hassan Omar over divisive Mt Kenya remarks

    Former Attorney General Justin Muturi. (Photo: X/Justin Muturi)

    Read this story aloud

    Listen to the clean text version of this article

    Ready
    3 min listen
    Audio reading is not supported on this browser.

    Muturi has accused UDA Secretary General Hassan Omar of making inflammatory remarks targeting the Mt Kenya region, warning President William Ruto to take decisive action to curb rising ethnic tensions ahead of the 2027 elections

    Former Attorney General Justin Muturi has joined growing criticism against UDA Secretary-General Hassan Omar over alleged divisive remarks, calling on President William Ruto to take decisive action against leaders promoting narratives that threaten national cohesion.
    Speaking after a Sunday church service and public engagement in Gacharage, Murang’a County, Muturi condemned Omar’s remarks about the Mt Kenya region, terming them inflammatory and dangerous.
    “I stated firmly that the Kikuyu community are not tenants in Kenya. They are citizens of this Republic by birth, by right and by sacrifice,” Muturi said.

    More To Read

    • Cabinet clears financing for Modogashe-Samatar and Rhamu-Mandera roads to speed up construction
    • 𝐄𝐚𝐬𝐭𝐥𝐞𝐢𝐠𝐡 𝐕𝐨𝐢𝐜𝐞 𝐚𝐭 𝐍𝐢𝐧𝐞 – Gatundu family demands justice after woman found dead
    • Court rules Ruto’s Cabinet is unconstitutional, orders gender-balanced appointments within 120 days
    • Teachers urge Ruto to confirm Evaleen Mitei as TSC CEO, citing reforms achieved during her tenure
    • Activists demand accountability over alleged police brutality and enforced disappearances
    • Court petition challenges government’s constitutional authority to sell Safaricom shares

    He warned that reckless ethnic rhetoric risked reviving tensions similar to those witnessed during the 2007–2008 Kenyan crisis.
    “The remarks made by UDA Secretary-General Hassan Omar were unfortunate, inflammatory and deeply disturbing. An apology alone cannot erase words that have the potential to divide Kenyans along ethnic lines,” he said.
    Muturi also challenged Ruto to act against leaders accused of promoting tribal politics.

    Latest Stories

    • Ethiopia coffee exports hit record Sh388 billion on rising global demand
    • Messi makes history as Argentina survive Cape Verde’s unforgettable World Cup fight
    • Renewable energy boom cuts global fossil fuel bill by Sh62 trillion in 2025
    • Judiciary to publish individual performance reports for judges in transparency push

    “I call upon President William Ruto, if indeed he stands against tribalism, to take decisive action against leaders who promote dangerous narratives that threaten national cohesion. Silence or inaction only emboldens such behaviour,” said Muturi.
    The criticism follows recent remarks by Omar in which he appeared to fault the Mt Kenya region for turning against Ruto despite backing him in the 2022 elections.
    “When Daniel Arap Moi was in power, you called him a passing cloud. When William Ruto took over, you started saying one term. Just like Moi was not a passing cloud, neither will Ruto serve for only one term,” Omar said.
    Omar also accused some leaders from the region of arrogance and sabotaging the country, remarks that have since triggered sharp political backlash.
    Kalonzo Musyoka condemned the statements, saying the UDA Secretary-General had no authority to issue remarks profiling any community in Kenya.
    “This calculated incitement must be condemned and halted immediately. Kenya has walked the painful road of post-election violence in 2007, and we, as a nation, cannot and must not be allowed to retrace those dark steps,” Kalonzo said.
    “Let it be clearly understood: should this incitement persist, the matter will be escalated to the International Criminal Court (ICC).”
    Mutahi Kahiga also weighed in on the controversy, calling for Omar’s resignation as UDA Secretary General over what he termed divisive remarks.
    The growing criticism has heightened political tensions within and outside UDA, with leaders warning against ethnic rhetoric ahead of Kenya’s 2027 General Election.

    Other Topics To Read

    Top Stories Today

    • Judiciary to publish individual performance reports for judges in transparency push
    • Ethiopia coffee exports hit record Sh388 billion on rising global demand
    • Messi makes history as Argentina survive Cape Verde’s unforgettable World Cup fight
    • Renewable energy boom cuts global fossil fuel bill by Sh62 trillion in 2025
    • Benchmark food prices down for second consecutive month in June
    • UNHCR warns escalating Lake Chad violence driving sharp rise in displacement

    `;
    }

    return “;
    }

    function commentActionsMarkup(comment, canComment) {
    const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
    const likeCount = Number(comment.like_count || 0) > 0
    ? “
    : ”;

    const likeButton = canComment && comment.status === ‘approved’
    ? “
    : “;

    const replyButton = canComment && comment.status === ‘approved’
    ? “
    : ”;

    return `

    `;
    }

    function commentMarkup(comment, canComment, isReply = false) {
    const pendingBadge = comment.status && comment.status !== ‘approved’
    ? “
    : ”;

    const edited = comment.is_edited
    ? “
    : ”;

    const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
    ? `

    `
    : “;

    return `

    `;
    }

    function replyFormMarkup(commentId) {
    return `

    `;
    }

    function setNotice(widget, message, type = ‘info’) {
    const notice = widget.querySelector(‘[data-role=”notice”]’);
    if (!notice) return;

    if (!message) {
    notice.hidden = true;
    notice.textContent = ”;
    notice.classList.remove(‘is-error’);
    return;
    }

    notice.hidden = false;
    notice.textContent = message;
    notice.classList.toggle(‘is-error’, type === ‘error’);
    }

    function setCount(widget, total) {
    const count = widget.querySelector(‘[data-role=”count”]’);
    if (!count) return;

    const num = Number(total || 0);
    count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
    }

    function openReplyBox(widget, commentId) {
    widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
    box.hidden = true;
    box.innerHTML = ”;
    });

    const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (!targetItem) return;

    const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
    if (!replyBox) return;

    replyBox.hidden = false;
    replyBox.innerHTML = replyFormMarkup(commentId);

    const textarea = replyBox.querySelector(‘textarea’);
    if (textarea) textarea.focus();
    }

    function closeReplyBox(container) {
    if (!container) return;
    container.hidden = true;
    container.innerHTML = ”;
    }

    async function initCommentsWidget(widget) {
    const state = {
    articleId: Number(widget.dataset.articleId),
    loadUrl: widget.dataset.loadUrl,
    storeUrl: widget.dataset.storeUrl,
    commentsBaseUrl: widget.dataset.commentsBaseUrl,
    canComment: widget.dataset.canComment === ‘1’,
    page: 1,
    perPage: 10,
    sort: ‘newest’,
    total: 0,
    hasMore: false,
    busy: false
    };

    const list = widget.querySelector(‘[data-role=”list”]’);
    const loading = widget.querySelector(‘[data-role=”loading”]’);
    const empty = widget.querySelector(‘[data-role=”empty”]’);
    const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
    const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
    const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

    async function loadComments(reset = true) {
    if (state.busy) return;

    state.busy = true;
    setNotice(widget, ”);
    loading.hidden = false;

    if (reset) {
    state.page = 1;
    list.innerHTML = ”;
    empty.hidden = true;
    }

    try {
    const url = new URL(state.loadUrl, window.location.origin);
    url.searchParams.set(‘page’, state.page);
    url.searchParams.set(‘per_page’, state.perPage);
    url.searchParams.set(‘sort’, state.sort);

    const response = await requestJson(url.toString(), {
    method: ‘GET’,
    headers: {
    ‘Accept’: ‘application/json’,
    ‘X-Requested-With’: ‘XMLHttpRequest’
    }
    });

    const items = Array.isArray(response.data) ? response.data : [];
    const meta = response.meta || {};

    state.total = Number(meta.total || 0);
    state.hasMore = !!meta.has_more;

    setCount(widget, state.total);

    if (reset) {
    list.innerHTML = ”;
    }

    if (!items.length && reset) {
    empty.hidden = false;
    } else {
    empty.hidden = true;
    list.insertAdjacentHTML(
    ‘beforeend’,
    items.map(item => commentMarkup(item, state.canComment, false)).join(”)
    );
    }

    loadMoreBtn.hidden = !state.hasMore;
    } catch (error) {
    if (!list.children.length) {
    empty.hidden = false;
    empty.textContent = ‘Unable to load comments right now.’;
    }
    setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
    } finally {
    loading.hidden = true;
    state.busy = false;
    }
    }

    async function submitTopLevelComment(form) {
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘[data-role=”submit-comment”]’);

    if (!textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(state.storeUrl, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    textarea.value = ”;

    if (response?.data) {
    list.insertAdjacentHTML(
    ‘afterbegin’,
    commentMarkup(response.data, state.canComment, false)
    );
    empty.hidden = true;

    if ((response.data.status || ”) === ‘approved’) {
    state.total += 1;
    setCount(widget, state.total);
    }
    }

    setNotice(widget, response.message || ‘Comment posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post comment’;
    }
    }
    }

    async function submitReply(form) {
    const commentId = Number(form.dataset.commentId || 0);
    const textarea = form.querySelector(‘textarea[name=”content”]’);
    const button = form.querySelector(‘.ev-comments__reply-submit’);

    if (!commentId || !textarea) return;

    const content = textarea.value.trim();
    if (!content) return;

    const originalText = button ? button.textContent : ”;

    try {
    if (button) {
    button.disabled = true;
    button.textContent = ‘Posting…’;
    }

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({
    article_id: state.articleId,
    content: content,
    source_url: window.location.href
    })
    });

    if (response?.data) {
    const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
    if (parentItem) {
    const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
    if (repliesWrap) {
    repliesWrap.insertAdjacentHTML(
    ‘beforeend’,
    commentMarkup(response.data, state.canComment, true)
    );
    }
    }
    }

    closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
    setNotice(widget, response.message || ‘Reply posted successfully.’);
    } catch (error) {
    setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
    } finally {
    if (button) {
    button.disabled = false;
    button.textContent = originalText || ‘Post reply’;
    }
    }
    }

    async function toggleLike(button) {
    const commentId = Number(button.dataset.commentId || 0);
    if (!commentId) return;

    const originalHtml = button.innerHTML;

    try {
    button.disabled = true;
    button.innerHTML = ‘Working…’;

    const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
    method: ‘POST’,
    headers: buildJsonHeaders(),
    body: JSON.stringify({})
    });

    const liked = !!response?.data?.liked;
    const likeCount = Number(response?.data?.like_count || 0);

    button.classList.toggle(‘is-liked’, liked);
    button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
    } catch (error) {
    button.innerHTML = originalHtml;
    setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
    } finally {
    button.disabled = false;
    }
    }

    if (composerForm) {
    composerForm.addEventListener(‘submit’, function (e) {
    e.preventDefault();
    submitTopLevelComment(composerForm);
    });
    }

    if (sortSelect) {
    sortSelect.addEventListener(‘change’, function () {
    state.sort = this.value || ‘newest’;
    loadComments(true);
    });
    }

    if (loadMoreBtn) {
    loadMoreBtn.addEventListener(‘click’, function () {
    if (state.busy || !state.hasMore) return;
    state.page += 1;
    loadComments(false);
    });
    }

    widget.addEventListener(‘click’, function (e) {
    const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
    if (likeBtn) {
    e.preventDefault();
    toggleLike(likeBtn);
    return;
    }

    const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
    if (replyBtn) {
    e.preventDefault();
    openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
    return;
    }

    const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
    if (cancelReplyBtn) {
    e.preventDefault();
    closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
    }
    });

    widget.addEventListener(‘submit’, function (e) {
    const replyForm = e.target.closest(‘.ev-comments__reply-form’);
    if (replyForm) {
    e.preventDefault();
    submitReply(replyForm);
    }
    });

    loadComments(true);
    }

    document.addEventListener(‘DOMContentLoaded’, function () {
    document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
    });
    })();

    Trending

    Ethiopia coffee exports hit record Sh388 billion on rising global demand
    Ethiopia coffee exports hit record Sh388 billion on rising global demandRegional
    |Bashir Mbuthia
    |26 minutes ago
    National Youth Council elections postponed indefinitely over compliance concerns
    National Youth Council elections postponed indefinitely over compliance concernsNews
    |Rachael Mutabasi
    |19 hours ago
    Messi makes history as Argentina survive Cape Verde's unforgettable World Cup fight
    Messi makes history as Argentina survive Cape Verde’s unforgettable World Cup fightNews
    |Erick Kariuki
    |45 minutes ago
    Kisumu unveils six-point plan to curb goons
    Kisumu unveils six-point plan to curb goonsInfographics
    |Charity Pancras
    |1 day ago
    Renewable energy boom cuts global fossil fuel bill by Sh62 trillion in 2025
    Renewable energy boom cuts global fossil fuel bill by Sh62 trillion in 2025Business
    |Alfred Onyango
    |1 hour ago
    Court freezes auction as judge weighs whether WhatsApp grey ticks prove legal service
    Court freezes auction as judge weighs whether WhatsApp grey ticks prove legal serviceNews
    |Carolyne Kubwa
    |1 day ago
    How the cocoa price crash is crushing West African farmers
    How the cocoa price crash is crushing West African farmersAfrica
    |DW News
    |1 day ago
    WhatsApp usernames raise impersonation concerns days after rollout
    WhatsApp usernames raise impersonation concerns days after rolloutNews
    |Margaret Wanjiru
    |1 day ago
    Police probe alleged gunfire after political clash disrupts Likoni public event
    Police probe alleged gunfire after political clash disrupts Likoni public eventCoast
    |Farhiya Hussein
    |1 day ago
    Kenya Association of Music Producers suspended for three months over governance, royalty misuse
    Kenya Association of Music Producers suspended for three months over governance, royalty misuseNews
    |Lucy Mumbi
    |1 day ago

    Action Against Demands Justin Muturi
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Chukwu Godlove

    Related Posts

    I Lost a Comrade, Kola Oseni, Who Shaped My Political Journey – Tinubu

    July 4, 2026

    Zuma sparks outrage after India meeting with Gupta brother

    July 4, 2026

    Violent clashes erupt in Marsabit–Wajir border land dispute, one hospitalised with gunshot wound

    July 4, 2026
    Leave A Reply Cancel Reply

    Search
    Latest Post

    Tanzania and DR Congo Lead East Africa at Khamenei Funeral in Iran

    July 4, 2026

    Why medicinal plants matter on World Wildlife Day

    July 4, 2026

    My startup has a literal moat, thanks to the French castle I run it from

    July 4, 2026

    Actualising African economic vision

    July 4, 2026

    South Africa Proceeds with AARTO Phase 2 Rollout After Court Ruling | Law

    July 4, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    • Facebook
    • Twitter
    • Pinterest
    • Instagram
    • YouTube
    • TikTok
    ABS TV and ABS Network News is a leading Pan-African 24/7 broadcasting network delivering nonstop news, talk shows, lifestyle programs, and digital media content worldwide through Satellite, Streaming Platforms, and Roku TV.
     
    Based in the United States, we connect Africa to the world while empowering creators, journalists, and brands through innovative media and broadcasting services.
    Facebook X (Twitter) Pinterest WhatsApp Instagram

    Our Picks

    Travel

    Tanzania and DR Congo Lead East Africa at Khamenei Funeral in Iran

    Environment

    Why medicinal plants matter on World Wildlife Day

    Business

    My startup has a literal moat, thanks to the French castle I run it from

    Most Popular

    Health

    Actualising African economic vision

    Legal

    South Africa Proceeds with AARTO Phase 2 Rollout After Court Ruling | Law

    Lifestyle

    I enjoy watching Rema, Burna Boy perform, says Keith Heffern

    © 2026 Copyright. All Rights Reserved by ABSAFRICATV
    • Privacy Policy
    • Terms of Services

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.