f62a8fddb1db00bd52535a93c620f265c249f61e jcasper Tue May 31 13:24:45 2016 -0700 Only delete gallery image if a session was in the gallery, refs #15312 diff --git src/hg/hgSession/hgSession.c src/hg/hgSession/hgSession.c index 604ae52..7ebaff2 100644 --- src/hg/hgSession/hgSession.c +++ src/hg/hgSession/hgSession.c @@ -962,38 +962,43 @@ getSessionLink(encUserName, encSessionName), getSessionEmailLink(encUserName, encSessionName)); cartLoadUserSession(conn, userName, sessionName, cart, NULL, wildStr); cartHideDefaultTracks(cart); hubConnectLoadHubs(cart); cartCopyCustomTracks(cart); cartCheckForCustomTracks(cart, dyMessage); didSomething = TRUE; } cartHelList = cartFindPrefix(cart, hgsDeletePrefix); for (hel = cartHelList; hel != NULL; hel = hel->next) { char *encSessionName = hel->name + strlen(hgsDeletePrefix); char *sessionName = cgiDecodeClone(encSessionName); + sqlSafef(query, sizeof(query), "select shared from %s " + "where userName = '%s' and sessionName = '%s';", + namedSessionTable, encUserName, encSessionName); + int shared = sqlQuickNum(conn, query); + if (shared >= 2) + doGalleryRemove(encUserName, encSessionName, conn); sqlSafef(query, sizeof(query), "DELETE FROM %s " "WHERE userName = '%s' AND sessionName = '%s';", namedSessionTable, encUserName, encSessionName); sqlUpdate(conn, query); dyStringPrintf(dyMessage, "Deleted session <B>%s</B>.<BR>\n", htmlEncode(sessionName)); - doGalleryRemove(encUserName, encSessionName, conn); didSomething = TRUE; } hDisconnectCentral(&conn); if (didSomething) return(dyStringCannibalize(&dyMessage)); else { dyStringFree(&dyMessage); return NULL; } } char *doOtherUser(char *actionVar) /* Load settings from another user's named session.