Content Security Policy (2024)

Skip to main content

Learn about Community

Sign In

You're signed out

Sign in to ask questions, follow content, and engage with the Community

Sign In

'; hoverCardInner.innerHTML = loadingHTML.repeat(4); hoverCardContainer.classList.add('profile-hover-card-show'); // Extract information from the image element const titleField = avatar.getAttribute('title'); const userInfoUrl = `https://${mainURL}/api/2.0/search?q=SELECT first_name, last_name, login, view_href, rank, topics, solutions_authored, id, email FROM users WHERE login = '${titleField}'`; const userPostsUrl = `https://${mainURL}/api/2.0/search?q=SELECT count(*) FROM messages WHERE author.login = '${titleField}'`; const userSolutionsUrl = `https://${mainURL}/api/2.0/search?q=SELECT count(*) FROM messages WHERE author.login = '${titleField}' AND is_solution = true`; const userBadgesUrl = `https://${mainURL}/api/2.0/search?q=SELECT user_badges from users where login = '${titleField}'`; // Fetch user information async function createProfileData() { const userInfo = await fetch(userInfoUrl); const userPosts = await fetch(userPostsUrl); const userSolutions = await fetch(userSolutionsUrl); const userBadges = await fetch(userBadgesUrl); const userInfoData = await userInfo.json(); const userPostsData = await userPosts.json(); const userSolutionsData = await userSolutions.json(); const userBadgesData = await userBadges.json(); const userBadgesArray = userBadgesData.data.items[0].user_badges.items; const earnedBadgesArray = userBadgesArray.filter(badge => badge.earned_date); earnedBadgesArray.sort((a, b) => new Date(b.earned_date) - new Date(a.earned_date)); const userRankName = userInfoData.data.items[0].rank.name; const userID = userInfoData.data.items[0].id; // const userKudosUrl = `https://${mainURL}/restapi/vc/users/id/${userID}/metrics/name/net_kudos_events_received?restapi.response_format=json`; const userKudos = await fetch(userKudosUrl); const userKudosData = await userKudos.json(); let fullName = userInfoData.data.items[0].login; if (userInfoData.data.items[0].first_name !== undefined && userInfoData.data.items[0].last_name !== undefined) { let firstName = userInfoData.data.items[0].first_name; let lastName = userInfoData.data.items[0].last_name; fullName = firstName + " " + lastName; } else { fullName = userInfoData.data.items[0].login; } let userRankIcon = ""; if (userInfoData.data.items[0].rank.icon_left !== undefined) { userRankIcon = userInfoData.data.items[0].rank.icon_left; } else { userRankIcon = ""; } let userEmail = ""; // <#if user_has_role> if (userInfoData.data.items[0].email !== undefined) { userEmail = userInfoData.data.items[0].email; } else { userEmail = ""; } // <#else> userEmail = ""; // #if> const userViewHref = userInfoData.data.items[0].view_href; const userPostsCount = userPostsData.data.count; const userSolutionsCount = userSolutionsData.data.count; const userKudosCount = userKudosData.response.value.$; const userBadgesCount = earnedBadgesArray.length; let badgesHTML = ""; if (earnedBadgesArray.length === 0) { badgesHTML = `

This user hasn't earned any badges yet.

`; } else { for (let i = 0; i < earnedBadgesArray.length; i++) { const badgeName = earnedBadgesArray[i].badge.title; const badgeIcon = earnedBadgesArray[i].badge.icon_url; const badgeHTML = `

Content Security Policy (12)

`; badgesHTML += badgeHTML; if (i >= 4) { break; } }; } const hoverCardHTML = `

${fullName}

Content Security Policy (13)${userRankName}

${userEmail}

${badgesHTML}

${userPostsCount} posts ${userKudosCount} likes ${userSolutionsCount} solutions

`; // // Display the hover card return hoverCardHTML; } if (hoverCardInner.innerHTML.includes('loading-box')) { createProfileData().then((hoverCardHTML) => { hoverCardInner.innerHTML = hoverCardHTML; }); } } }); //Hide the hover card on mouseout avatar.addEventListener('mouseout', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.remove('profile-hover-card-show'); }); hoverCardInner.addEventListener('mouseout', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.remove('profile-hover-card-show'); }); hoverCardInner.addEventListener('mouseover', () => { const hoverCardContainer = avatar.nextElementSibling; hoverCardContainer.classList.add('profile-hover-card-show'); }); }); });

Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Showonly | Search instead for

Did you mean:

  • Community
  • Canvas
  • Canvas LMS
  • Canvas Admin
  • Canvas Admin Discussion
  • Content Security Policy

Options

  • Subscribe to RSS Feed
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Bookmark
  • Subscribe
  • Mute
  • Printer Friendly Page

`; const toolTip = document.createElement('div'); toolTip.classList.add('like-button-tooltip'); toolTip.innerHTML = toolTipCode; likeButton.appendChild(toolTip); } document.addEventListener('DOMContentLoaded', function () { const likeButton = document.querySelector('.lia-button-image-kudos'); const likeButtonLink = document.querySelector('.kudos-link'); let likeDismissCookie = localStorage.getItem("inst_comm_like_dismiss"); if (!likeDismissCookie) { localStorage.setItem("inst_comm_like_dismiss", "-1"); loginDate = -1; } if (likeDismissCookie !== "-1") { // toolTip.style.display = 'none'; const storedTime = new Date(parseInt(loginDate)); const currentTime = new Date(); if (storedTime.getTime() < currentTime.getTime()) { localStorage.setItem("inst_comm_like_dismiss", "-1"); } } else { createToolTip(likeButton, likeButtonLink); const toolTip = document.querySelector('.like-button-tooltip'); const toolTipClose = document.querySelector('.like-button-tooltip-close'); const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { toolTip.style.display = 'block'; setTimeout(() => { toolTip.style.opacity = '1'; }, 2000); // toolTip.style.animationName = 'toolTipFlash'; // Stop observing once elementOne is visible observer.unobserve(likeButton); } }); }); // Start observing elementTwo observer.observe(likeButton); likeButtonLink.addEventListener('click', () => { toolTip.style.display = 'none'; }); if (toolTipClose) { toolTipClose.addEventListener("click", function () { const now = new Date(); const fourteenDays = new Date(now.getTime() + 14 * 24 * 60 * 60 * 1000); // Adding 24 hours in milliseconds const epochTime = fourteenDays.getTime(); // Getting the epoch time in milliseconds localStorage.setItem("inst_comm_like_dismiss", epochTime); toolTip.style.display = 'none'; }); } setTimeout(() => { toolTip.style.opacity = '0'; setTimeout(() => { toolTip.style.display = 'none'; }, 500); // Fade out duration (0.5 seconds) + delay (0.5 seconds) = 1 second }, 15000); // Hide after 10 seconds (including 2-second fade-in delay) } });

Content Security Policy

Content Security Policy (14)

sylvia_sotomayo

Community Explorer

  • Mark as New
  • Bookmark
  • Subscribe
  • Mute
  • Subscribe to RSS Feed
  • Permalink
  • Print
  • Report Inappropriate Content

a week ago

Hi,

This is a question for Canvas admins, particularly those in higher ed. Is anyone using the Content Security Policy? What issues have you encountered if so? If not, why not? We have started using it and I have run into a few pain points, one severe enough that it is now listed in Known Issues and they are working on a fix. I am interested in hearing from other who are using the CSP or have used it.

Thank you,

Sylvia Sotomayor
Canvas Admin, Distance Education
Cerro Coso Community College

I also have this question

0Likes

  • All forum topics
  • Next Topic

0 Replies

Content Security Policy (15)

Unanswered Topics

  • Content Security Policy

  • Subaccount Visualization (Using Lucidchart)

  • How long do you keep student user data in Canvas b...

  • How to setup Parent Observers with Guest accounts ...

  • How do I obtain a student total activity?

View All

Latest Topics

  • Content Security Policy

  • Subaccount Visualization (Using Lucidchart)

  • Moodle Access After Migrating to Canvas

  • Large Subaccount Restructures

  • Hide Next button on an Assignment?

View All

View our top guides and resources:

Find My Canvas URL Help Logging into Canvas Generate a Pairing Code Canvas Browser and Computer Requirements Change Canvas Notification Settings Submit a Peer Review Assignment

To participate in the Instructurer Community, you need to sign up or log in:

Sign In

Content Security Policy (2024)
Top Articles
Latest Posts
Article information

Author: Sen. Ignacio Ratke

Last Updated:

Views: 6214

Rating: 4.6 / 5 (76 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Sen. Ignacio Ratke

Birthday: 1999-05-27

Address: Apt. 171 8116 Bailey Via, Roberthaven, GA 58289

Phone: +2585395768220

Job: Lead Liaison

Hobby: Lockpicking, LARPing, Lego building, Lapidary, Macrame, Book restoration, Bodybuilding

Introduction: My name is Sen. Ignacio Ratke, I am a adventurous, zealous, outstanding, agreeable, precious, excited, gifted person who loves writing and wants to share my knowledge and understanding with you.