From 94e12c168f5eec300fd23d0de25c7dc93a96c429 Mon Sep 17 00:00:00 2001 From: James Moger Date: Mon, 3 Mar 2014 17:41:54 -0500 Subject: [PATCH] Eliminate Gravatar profile linking and improve api --- releases.moxie | 1 + .../com/gitblit/wicket/GitBlitWebApp.java | 2 - .../wicket/pages/GravatarProfilePage.html | 22 ------- .../wicket/pages/GravatarProfilePage.java | 64 ------------------- .../com/gitblit/wicket/pages/RootPage.java | 3 +- .../gitblit/wicket/panels/DigestsPanel.java | 3 +- .../gitblit/wicket/panels/GravatarImage.html | 2 +- .../gitblit/wicket/panels/GravatarImage.java | 36 ++++------- .../gitblit/wicket/panels/ReflogPanel.java | 3 +- .../panels/RegistrantPermissionsPanel.java | 2 +- 10 files changed, 18 insertions(+), 120 deletions(-) delete mode 100644 src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html delete mode 100644 src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java diff --git a/releases.moxie b/releases.moxie index cd4e43ea..f7af6cb2 100644 --- a/releases.moxie +++ b/releases.moxie @@ -53,6 +53,7 @@ r20: { - Revised committer verification to require a matching displayname or account name AND the email address - Serve repositories on both /r and /git, displaying /r because it is shorter - Eliminate HEAD from the blob, blame, and tree pages. That assumed a resource was available in HEAD and it may not be. + - Eliminate Gravatar profile linking. additions: - Added color modes for the blame page (issue-2) - Added an optional MirrorService which will periodically fetch ref updates from source repositories for mirrors (issue-5). Repositories must be manually cloned using native git and "--mirror". diff --git a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java index 35a0823b..ab5ae2a2 100644 --- a/src/main/java/com/gitblit/wicket/GitBlitWebApp.java +++ b/src/main/java/com/gitblit/wicket/GitBlitWebApp.java @@ -53,7 +53,6 @@ import com.gitblit.wicket.pages.FederationRegistrationPage; import com.gitblit.wicket.pages.ForkPage; import com.gitblit.wicket.pages.ForksPage; import com.gitblit.wicket.pages.GitSearchPage; -import com.gitblit.wicket.pages.GravatarProfilePage; import com.gitblit.wicket.pages.HistoryPage; import com.gitblit.wicket.pages.LogPage; import com.gitblit.wicket.pages.LogoutPage; @@ -178,7 +177,6 @@ public class GitBlitWebApp extends WebApplication { mount("/registration", FederationRegistrationPage.class, "u", "n"); mount("/activity", ActivityPage.class, "r", "h"); - mount("/gravatar", GravatarProfilePage.class, "h"); mount("/lucene", LuceneSearchPage.class); mount("/project", ProjectPage.class, "p"); mount("/projects", ProjectsPage.class); diff --git a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html b/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html deleted file mode 100644 index b4531a1b..00000000 --- a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - -
-
-

Gravatar / [username]

-
- -

-
-
-

- [Complete profile on Gravatar.com] -

-
-
- - \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java b/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java deleted file mode 100644 index 984b2972..00000000 --- a/src/main/java/com/gitblit/wicket/pages/GravatarProfilePage.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2011 gitblit.com. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.gitblit.wicket.pages; - -import java.io.IOException; -import java.text.MessageFormat; - -import org.apache.wicket.PageParameters; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.link.ExternalLink; - -import com.gitblit.models.GravatarProfile; -import com.gitblit.utils.ActivityUtils; -import com.gitblit.wicket.ExternalImage; -import com.gitblit.wicket.WicketUtils; - -/** - * Gravatar Profile Page shows the Gravatar information, if available. - * - * @author James Moger - * - */ -public class GravatarProfilePage extends RootPage { - - public GravatarProfilePage(PageParameters params) { - super(); - setupPage("", ""); - String object = WicketUtils.getObject(params); - GravatarProfile profile = null; - try { - if (object.indexOf('@') > -1) { - profile = ActivityUtils.getGravatarProfileFromAddress(object); - } else { - profile = ActivityUtils.getGravatarProfile(object); - } - } catch (IOException e) { - error(MessageFormat.format(getString("gb.failedToFindGravatarProfile"), object), e, true); - } - - if (profile == null) { - error(MessageFormat.format(getString("gb.failedToFindGravatarProfile"), object), true); - } - add(new Label("displayName", profile.displayName)); - add(new Label("username", profile.preferredUsername)); - add(new Label("location", profile.currentLocation)); - add(new Label("aboutMe", profile.aboutMe)); - ExternalImage image = new ExternalImage("profileImage", profile.thumbnailUrl + "?s=256&d=identicon"); - add(image); - add(new ExternalLink("profileLink", profile.profileUrl)); - } -} diff --git a/src/main/java/com/gitblit/wicket/pages/RootPage.java b/src/main/java/com/gitblit/wicket/pages/RootPage.java index 9141b4e3..5ccc3a4c 100644 --- a/src/main/java/com/gitblit/wicket/pages/RootPage.java +++ b/src/main/java/com/gitblit/wicket/pages/RootPage.java @@ -576,8 +576,7 @@ public abstract class RootPage extends BasePage { boolean standardLogin = session.authenticationType.isStandard(); if (app().settings().getBoolean(Keys.web.allowGravatar, true)) { - add(new GravatarImage("username", user.getDisplayName(), - user.emailAddress, "navbarGravatar", 20, false, false)); + add(new GravatarImage("username", user, "navbarGravatar", 20, false)); } else { add(new Label("username", user.getDisplayName())); } diff --git a/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java b/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java index ee97635f..de09aa95 100644 --- a/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/DigestsPanel.java @@ -203,8 +203,7 @@ public class DigestsPanel extends BasePanel { final RepositoryCommit commit = commitItem.getModelObject(); // author gravatar - commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent().getName(), - commit.getAuthorIdent().getEmailAddress(), null, 16, false, false)); + commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent(), null, 16, false)); // merge icon if (commit.getParentCount() > 1) { diff --git a/src/main/java/com/gitblit/wicket/panels/GravatarImage.html b/src/main/java/com/gitblit/wicket/panels/GravatarImage.html index 9dda7958..846a8f1b 100644 --- a/src/main/java/com/gitblit/wicket/panels/GravatarImage.html +++ b/src/main/java/com/gitblit/wicket/panels/GravatarImage.html @@ -4,6 +4,6 @@ xml:lang="en" lang="en"> - + \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/panels/GravatarImage.java b/src/main/java/com/gitblit/wicket/panels/GravatarImage.java index 34af2bfb..9507a25e 100644 --- a/src/main/java/com/gitblit/wicket/panels/GravatarImage.java +++ b/src/main/java/com/gitblit/wicket/panels/GravatarImage.java @@ -15,22 +15,16 @@ */ package com.gitblit.wicket.panels; -import java.text.MessageFormat; - -import org.apache.wicket.behavior.SimpleAttributeModifier; -import org.apache.wicket.markup.html.link.BookmarkablePageLink; -import org.apache.wicket.markup.html.link.Link; import org.eclipse.jgit.lib.PersonIdent; import com.gitblit.Keys; +import com.gitblit.models.UserModel; import com.gitblit.utils.ActivityUtils; -import com.gitblit.utils.StringUtils; import com.gitblit.wicket.ExternalImage; import com.gitblit.wicket.WicketUtils; -import com.gitblit.wicket.pages.GravatarProfilePage; /** - * Represents a Gravatar image and links to the Gravatar profile page. + * Represents a Gravatar image. * * @author James Moger * @@ -44,21 +38,21 @@ public class GravatarImage extends BasePanel { } public GravatarImage(String id, PersonIdent person, int width) { - this(id, person, width, true); + this(id, person.getName(), person.getEmailAddress(), "gravatar", width, true); + } + + public GravatarImage(String id, PersonIdent person, String cssClass, int width, boolean identicon) { + this(id, person.getName(), person.getEmailAddress(), cssClass, width, identicon); } - public GravatarImage(String id, PersonIdent person, int width, boolean linked) { - this(id, person.getName(), person.getEmailAddress(), "gravatar", width, linked, true); + public GravatarImage(String id, UserModel user, String cssClass, int width, boolean identicon) { + this(id, user.getDisplayName(), user.emailAddress, cssClass, width, identicon); } - public GravatarImage(String id, String username, String emailaddress, String cssClass, int width, boolean linked, boolean identicon) { + public GravatarImage(String id, String username, String emailaddress, String cssClass, int width, boolean identicon) { super(id); String email = emailaddress == null ? username.toLowerCase() : emailaddress.toLowerCase(); - String hash = StringUtils.getMD5(email); - Link link = new BookmarkablePageLink("link", GravatarProfilePage.class, - WicketUtils.newObjectParameter(hash)); - link.add(new SimpleAttributeModifier("target", "_blank")); String url; if (identicon) { url = ActivityUtils.getGravatarIdenticonUrl(email, width); @@ -69,14 +63,8 @@ public class GravatarImage extends BasePanel { if (cssClass != null) { WicketUtils.setCssClass(image, cssClass); } - link.add(image); - if (linked) { - WicketUtils.setHtmlTooltip(link, - MessageFormat.format("View Gravatar profile for {0}", username)); - } else { - WicketUtils.setHtmlTooltip(link, username); - } - add(link.setEnabled(linked)); + add(image); + WicketUtils.setHtmlTooltip(image, username); setVisible(app().settings().getBoolean(Keys.web.allowGravatar, true)); } } \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java b/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java index 70f59863..c1db726a 100644 --- a/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/ReflogPanel.java @@ -259,8 +259,7 @@ public class ReflogPanel extends BasePanel { final RepositoryCommit commit = commitItem.getModelObject(); // author gravatar - commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent().getName(), - commit.getAuthorIdent().getEmailAddress(), null, 16, false, false)); + commitItem.add(new GravatarImage("commitAuthor", commit.getAuthorIdent(), null, 16, false)); // merge icon if (commit.getParentCount() > 1) { diff --git a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java index 756b7db4..f37cc2aa 100644 --- a/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java +++ b/src/main/java/com/gitblit/wicket/panels/RegistrantPermissionsPanel.java @@ -145,7 +145,7 @@ public class RegistrantPermissionsPanel extends BasePanel { } Fragment userFragment = new Fragment("registrant", "userRegistrant", RegistrantPermissionsPanel.this); - userFragment.add(new GravatarImage("userAvatar", ident, 20, false)); + userFragment.add(new GravatarImage("userAvatar", ident, 20)); userFragment.add(new Label("userName", entry.registrant)); item.add(userFragment); } else { -- 2.39.5