Coder Social home page Coder Social logo

uportal-project / calendarportlet Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 42.0 3.37 MB

JSR-168 portlet implementing calendar viewing in uPortal.

Home Page: https://wiki.jasig.org/display/PLT/Calendar+Portlet

License: Apache License 2.0

Java 96.12% JavaScript 1.94% Less 1.94%
hacktoberfest java portal portlet uportal uportal-start-bundled

calendarportlet's People

Contributors

acolebourne avatar allanjackson avatar apetro avatar astik avatar bjagg avatar bourey avatar bpowell avatar brucezztong avatar christianmurphy avatar doodelicious avatar drewwills avatar groybal avatar jgribonvald avatar jhelmer-unicon avatar joshbrudnak avatar laurenra7 avatar loulou2u avatar mindblender avatar msultzaberger avatar nblair avatar renovate-bot avatar renovate[bot] avatar sbramhall avatar shawnconnolly avatar tefreestone avatar tuyly avatar vbonamy avatar waymirec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calendarportlet's Issues

Orphaned duplicate rows created when user adds a calendar

Steps to reproduce:

  1. log in as student
  2. in Calendar portlet, click Options --> Edit
  3. click "Add a Calendar"
  4. enter values for "Calendar name" and "Calendar URL" and click the "Save calendar" button
  5. check CALENDAR_STORE table and notice how there are two new rows with the calendar name you entered
  6. check CALENDAR_PREFERENCE table and notice how there are two new rows with the calendar URL you entered
  7. in Calendar portlet edit screen, click "Edit Calendar" next to the new calendar you added (notice the "My Calendars" list does not have a duplicate entry)
  8. change the value for "Calendar name" and "Calendar URL" and click the "Save calendar" button
  9. check CALENDAR_STORE table and notice the last row was updated but the second to last row has the original value from step 4
  10. check CALENDAR_PREFERENCE table and notice the last row was updated but the second to last row has the original value from step 4
  11. check CALENDAR_CONFIGURATION table and notice there are no rows with CALENDAR_ID value that references the second to last rows in CALENDAR_STORE and CALENDAR_PREFERENCE (thus those rows are orphaned)

Calendar permission changes not reflected

Changing permissions on the calendar is not being reflected.

  1. As admin, add a new unauthenticated iCal feed (such as https://calendar.google.com/calendar/ical/en.australian%23holiday%40group.v.calendar.google.com/public/basic.ics ) and make available to Everyone.
  2. Login as the staff user. Observe calendar and events appear.
  3. Log back in as admin. Change the permissions on the recently added calendar to 'Portal Administrators'
  4. Log back in as staff and observe that the calendar still shows up

Clearing the cache does not appear to help.

Upgrade Spring and HttpClient

CVEs for the current versions of Spring Core and HttpClient. Appears that some tests fail with a quick update of the Spring version number. Also, there are some comments in pom.xml about NOT upgrading HttpClient for a particular service.

Calendar Administration doesn't allow creating calendars

To replicate, got to Calendar portlet, click on title to maximize and reveal "Calendar administration" link.

  1. Click on "Calendar administration"
  2. Click on "+ Add a calendar"
  3. Enter Calendar functional name and Calendar type
  4. Click on "Next" button

Try adding a calendar on this page, and no calendar is saved.

Cannot add or edit calendars via UI

In both our development version (v5.1.2) and the most recent "vanilla" version of uPortal and uPortal-start (v5.2.3), I can't add or edit calendars in the Calendar portlet (v2.6.0).

Steps to reproduce after deploying locally with uPortal-start:

  1. log in as staff or student
  2. click on Calendar portlet name to maximize portlet and reveal Preferences link
  3. click on Preferences
  4. click on + Add a calendar
  5. fill in Calendar name and Calendar URL
  6. click on "Save calendar" button

No new calendar.

Does this happen for you? Could you see if others report the same behavior? It's easy to check if you have uPortal 5 running.

After much debugging I think I know what the problem is but I don't know how to resolve it.

On the "Edit calendar" page (editCalendarUrl.jsp), after entering a Calendar name and Calendar URL, when I click the "Save calendar" button, it's supposed to redirect to Action "editUrl" but it's not getting there because the request looks like this:

http://localhost:8080/uPortal/f/welcome/p/calendar.u25l1n13/max/action.uP?_csrf=403fcb62-9a79-4a32-8874-3a09a1af64f0&pP_action=editUrl

The _csrf parameter is encoding the ampersand as "&" instead of an "&" before the next parameter, "pP_action=editUrl" so in the browser (Chrome), the Query String Parameters list ends up looking like:

_csrf: 403fcb62-9a79-4a32-8874-3a09a1af64f0
amp;pP_action: editUrll

It looks like the "&" isn't getting decoded back to "&" so the second query parameter ends up being "&pP_action" which is likely not being recognized by Spring Portlet or uPortal or whatever processes "pP_action" as an action request.

I've put debug statements in EditUserHttpICalController on the showHttpCalendarForm and updateHttpCalendar methods and it never gets to the updateHttpCalendar method, suggesting that uPortal or the CalendarPortlet isn't decoding the "&" properly. I noticed that this is using Spring Web MVC 3.1.3.RELEASE which is pretty old.

I tried it with uPortal 5.2.3 and CalendarPortlet 2.6.0 using uPortal-start (./gradlew portalInit, ./gradlew tomcatDeploy, ./gradlew tomcatStart) as both admin and staff. Click on Calendar name in portlet header to expand to full screen and display Preferences (and Administration for admin user).

Hibernate Session cache causing workflow issues

Latest fixes have highlighted an issue with session caching in Admin UI.

Example 1:

  1. As admin, add a new shared calendar feed.
  2. Observe on the admin calendar list that the new feed appears.
  3. Return to 'View Calendars'
  4. Observe that the new feed is missing in view preferences.
  5. Log out and back in as admin
  6. Observe the new feed is present in view preferences.

Example 2:

  1. Delete a shared calendar feed in the Admin calendar page.
  2. Observe that the deleted calendar is still listed.
  3. Attempt to delete the calendar and observe that a error is thrown.

Flushing the EhCache does not correct this caching issue. This led me to believe it is in the Hibernate Session (as opposed to Http session). Transactions may not be set up correctly. Some experimentation with flushing and clearing the template in HibernateCalendarStore did not seem to help. Might be that the action request that does the updates but the call to get the calendar feeds is in the redirect. Also worth noting is that adding a new feed seems to manifest differently than deleting a feed!

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository. View logs.

  • WARN: Package lookup failures

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update dependency com.sun.xml.bind:jaxb-impl to v2.3.9
  • chore(deps): update dependency javax.portlet:portlet-api to v2.0-draft32
  • fix(deps): update dependency com.sun.xml.ws:jaxws-rt to v2.3.7
  • fix(deps): update dependency joda-time:joda-time to v2.12.7
  • fix(deps): update dependency xalan:serializer to v2.7.3
  • fix(deps): update slf4j monorepo to v2.0.13 (org.slf4j:jcl-over-slf4j, org.slf4j:log4j-over-slf4j, org.slf4j:jul-to-slf4j, org.slf4j:slf4j-api)
  • chore(deps): update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.4.0
  • chore(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.7.0
  • chore(deps): update dependency org.apache.maven.plugins:maven-release-plugin to v3.1.1
  • chore(deps): update dependency org.apache.maven.scm:maven-scm-api to v2.1.0
  • chore(deps): update dependency org.apache.maven.scm:maven-scm-provider-gitexe to v2.1.0
  • chore(deps): update dependency org.jvnet.jaxb2.maven2:maven-jaxb2-plugin to v0.15.3
  • chore(deps): update dependency org.lesscss:lesscss-maven-plugin to v1.7.0.1.1
  • chore(deps): update jaxb2basicsversion to v0.13.1 (org.jvnet.jaxb2_commons:jaxb2-basics, org.jvnet.jaxb2_commons:jaxb2-basics-runtime)
  • chore(deps): update resource-server.version to v1.5.0 (org.jasig.resourceserver:resource-server-plugin, org.jasig.resourceserver:resource-server-utils, org.jasig.resourceserver:resource-server-content)
  • fix(deps): update dependency com.fasterxml.jackson.core:jackson-core to v2.17.2
  • fix(deps): update dependency com.fasterxml.jackson.core:jackson-databind to v2.17.2
  • fix(deps): update dependency commons-codec:commons-codec to v1.17.1
  • fix(deps): update dependency commons-io:commons-io to v2.16.1
  • fix(deps): update dependency org.hsqldb:hsqldb to v2.7.3
  • fix(deps): update dependency org.jasig.portal:uportal-spring to v5.16.1
  • chore(deps): update actions/checkout action to v4
  • chore(deps): update actions/setup-java action to v4
  • chore(deps): update dependency com.sun.xml.bind:jaxb-impl to v4
  • chore(deps): update dependency javax.portlet:portlet-api to v3
  • chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3
  • chore(deps): update jaxb2basicsversion to v1 (major) (org.jvnet.jaxb2_commons:jaxb2-basics, org.jvnet.jaxb2_commons:jaxb2-basics-runtime)
  • fix(deps): update dependency com.ibm.icu:icu4j to v75
  • fix(deps): update dependency com.sun.xml.ws:jaxws-rt to v4
  • fix(deps): update dependency jakarta.xml.ws:jakarta.xml.ws-api to v4
  • fix(deps): update dependency org.apache.portals.pluto:pluto-taglib to v3
  • fix(deps): update dependency org.hibernate:hibernate-tools to v5
  • fix(deps): update dependency org.jasig.portlet.courses:courses-portlet-dao to v2
  • fix(deps): update dependency org.mnode.ical4j:ical4j to v4
  • fix(deps): update spring core to v6 (major) (org.springframework:spring-test, org.springframework:spring-orm, org.springframework:spring-jdbc, org.springframework:spring-aop, org.springframework:spring-context-support, org.springframework:spring-core)
  • fix(deps): update spring ws to v4 (major) (org.springframework.ws:spring-ws-security, org.springframework.ws:spring-ws-core)
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Warning

Renovate failed to look up the following dependencies: Failed to look up maven package org.osaf:caldav4j, Failed to look up maven package slide:jakarta-slide-webdavlib.

Files affected: pom.xml


Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

github-actions
.github/workflows/CI.yml
  • actions/checkout v3
  • actions/setup-java v3
maven
pom.xml
  • org.jasig.parent:jasig-parent 41
  • com.googlecode.cernunnos:cernunnos 1.4.0
  • javax.script:groovy-engine 1.1
  • com.ibm.icu:icu4j 72.1
  • com.thoughtworks.xstream:xstream 1.4.20
  • commons-codec:commons-codec 1.15
  • commons-collections:commons-collections 3.2.2
  • org.apache.httpcomponents:httpclient 4.5.14
  • commons-httpclient:commons-httpclient 3.1
  • commons-io:commons-io 2.11.0
  • commons-lang:commons-lang 2.6
  • org.mnode.ical4j:ical4j 1.0.9
  • javax.servlet:jstl 1.2
  • javax.annotation:jsr250-api 1.0
  • javax.portlet:portlet-api 2.0
  • javax.servlet:javax.servlet-api 3.0.1
  • jcifs:jcifs 1.3.17
  • joda-time:joda-time 2.12.2
  • junit:junit 4.13.2
  • net.sourceforge.nekohtml:nekohtml 1.9.22
  • org.jasig.portal:uPortal-spring 5.13.1
  • org.jasig.portlet.courses:courses-portlet-dao 1.0.0-M3
  • org.jasig.portlet.utils:portlet-form-resources 1.0.0-M1
  • org.jasig.resourceserver:resource-server-content 1.3.1
  • org.jasig.resourceserver:resource-server-utils 1.3.1
  • org.jasig.portal:uportal-search-api 4.3.1
  • org.jasypt:jasypt-spring31 1.9.3
  • org.hibernate:hibernate-core 3.6.10.Final
  • org.hibernate:hibernate-tools 3.6.0.Final
  • com.fasterxml.jackson.core:jackson-core 2.14.2
  • com.fasterxml.jackson.core:jackson-databind 2.13.4.2
  • org.jasig.cas.client:cas-client-core 3.6.2
  • org.jvnet.jaxb2_commons:jaxb2-basics-runtime 0.6.0
  • org.mockito:mockito-core 1.10.19
  • org.osaf:caldav4j 0.7
  • org.owasp:antisamy 1.4
  • org.springframework:spring-core 4.3.30.RELEASE
  • org.springframework:spring-context 4.3.30.RELEASE
  • org.springframework:spring-context-support 4.3.30.RELEASE
  • org.springframework:spring-beans 4.3.30.RELEASE
  • org.springframework:spring-aop 4.3.30.RELEASE
  • org.springframework:spring-jdbc 4.3.30.RELEASE
  • org.springframework:spring-orm 4.3.30.RELEASE
  • org.springframework:spring-test 4.3.30.RELEASE
  • org.springframework:spring-web 4.3.30.RELEASE
  • org.springframework:spring-webmvc-portlet 4.3.30.RELEASE
  • org.springframework.ws:spring-ws-core 2.4.6.RELEASE
  • org.springframework.ws:spring-ws-security 2.4.6.RELEASE
  • rome:rome 1.0
  • slide:jakarta-slide-webdavlib 2.2pre1-httpclient-3.0
  • taglibs:standard 1.1.2
  • xalan:serializer 2.7.2
  • xerces:xercesImpl 2.12.2
  • org.slf4j:slf4j-api 2.0.6
  • org.slf4j:jul-to-slf4j 2.0.6
  • org.slf4j:log4j-over-slf4j 2.0.6
  • org.slf4j:jcl-over-slf4j 2.0.6
  • ch.qos.logback:logback-classic 1.3.5
  • org.hsqldb:hsqldb 2.3.2
  • javax.xml.bind:jaxb-api 2.3.1
  • jakarta.xml.ws:jakarta.xml.ws-api 2.3.3
  • com.sun.xml.ws:jaxws-rt 2.3.3
  • org.apache.portals.pluto:pluto-taglib 2.1.0-M3
  • org.apache.maven.plugins:maven-release-plugin 3.0.0-M7
  • org.apache.maven.scm:maven-scm-api 2.0.0-M3
  • org.apache.maven.scm:maven-scm-provider-gitexe 2.0.0-M3
  • org.apache.maven.plugins:maven-surefire-plugin 2.22.2
  • org.jasig.resourceserver:resource-server-plugin 1.3.1
  • com.sun.xml.bind:jaxb-impl 2.3.3
  • org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 0.14.0
  • org.jvnet.jaxb2_commons:jaxb2-basics 0.6.0
  • org.jasig.portal.maven:uportal-maven-plugin 1.0.1
  • javax.servlet:javax.servlet-api 3.0.1
  • javax.portlet:portlet-api 2.0
  • rhino:js 1.7R2
  • org.codehaus.mojo:surefire-report-maven-plugin 2.0-beta-1
  • org.codehaus.mojo:cobertura-maven-plugin 2.7
  • org.codehaus.mojo:findbugs-maven-plugin 3.0.5
  • org.lesscss:lesscss-maven-plugin 1.3.3
  • org.apache.maven.plugins:maven-javadoc-plugin 3.4.1
  • org.apache.maven.plugins:maven-checkstyle-plugin 3.2.0

  • Check this box to trigger a request for Renovate to run again on this repository

Never ending http requests and cannot add webcals

if you have a dead link if the other server never responds it does not time out, it will just endlessly retry the link. also many of the calendars out there are using ical format with the webcal:// protocal. and the calendar portlet does not recognize them.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.