r7106 - in dumbhippo/trunk/server/src/com/dumbhippo: persistence server/impl web web/pages web/servlets



Author: marinaz
Date: 2007-12-20 14:40:27 -0600 (Thu, 20 Dec 2007)
New Revision: 7106

Modified:
   dumbhippo/trunk/server/src/com/dumbhippo/persistence/Account.java
   dumbhippo/trunk/server/src/com/dumbhippo/server/impl/FacebookTrackerBean.java
   dumbhippo/trunk/server/src/com/dumbhippo/server/impl/HttpMethodsBean.java
   dumbhippo/trunk/server/src/com/dumbhippo/web/SigninBean.java
   dumbhippo/trunk/server/src/com/dumbhippo/web/UserSigninBean.java
   dumbhippo/trunk/server/src/com/dumbhippo/web/pages/AbstractPersonPage.java
   dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookServlet.java
   dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookSigninServlet.java
Log:
Add publicPage boolean to Account. 
Use it to decide if the person's page should show up on Mugshot.

Revert Account::isActive() to check if the terms of use were accepted.

Set hasAcceptedTerms to true for the users who add Musghot application
on Facebook, since we can have Facebook display the link to the terms 
saying: "By using Mugshot, you also agree to the Mugshot Terms of Service."

Modified: dumbhippo/trunk/server/src/com/dumbhippo/persistence/Account.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/persistence/Account.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/persistence/Account.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -65,6 +65,12 @@
 	private boolean hasDoneShareLinkTutorial;
 	
 	private boolean hasAcceptedTerms;
+	
+	// this variable tells us if we should display the page publicly
+	// we currently don't do that for people who have added Mugshot as an application on Facebook
+	// we can also use this to not display a Mugshot page for people who register on online.gnome.org
+	private boolean publicPage;
+	
 	private boolean needsDownload;
 	
 	private boolean disabled;
@@ -118,6 +124,7 @@
 		lastLoginDate = -1;
 		lastLogoutDate = -1;
 		lastWebActivityDate = -1;
+		publicPage = false;
 		wasSentShareLinkTutorial = false;
 		hasDoneShareLinkTutorial = false;
 		needsDownload = true;
@@ -361,6 +368,15 @@
 	public void setHasAcceptedTerms(boolean hasAcceptedTerms) {
 		this.hasAcceptedTerms = hasAcceptedTerms;
 	}
+
+	@Column(nullable=false)
+	public boolean isPublicPage() {
+		return publicPage;
+	}
+
+	public void setPublicPage(boolean publicPage) {
+		this.publicPage = publicPage;
+	}
 	
 	@Column(nullable=false)
 	public boolean getNeedsDownload() {
@@ -469,14 +485,7 @@
 	
 	@Transient
 	public boolean isActive() {
-		// This used to also check hasAcceptedTerms, but since
-		// the only way we'd have any information for someone who
-		// did not accept terms is if they entered it on Facebook,
-		// we shouldn't check it here, but instead let this function 
-		// return True in that case.
-		// Alternatively, we can create a separate variable 
-		// isFacebookOnly.
-		return !(isDisabled() || isAdminDisabled());
+		return !(isDisabled() || isAdminDisabled()) && hasAcceptedTerms;
 	}
 
 	@Column(nullable=true)

Modified: dumbhippo/trunk/server/src/com/dumbhippo/server/impl/FacebookTrackerBean.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/server/impl/FacebookTrackerBean.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/server/impl/FacebookTrackerBean.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -145,7 +145,7 @@
 				AccountClaim ac = res.getAccountClaim();
 				if (ac != null) {
 					if (!ac.getOwner().equals(viewpoint.getViewer())) {
-						if (!ac.getOwner().getAccount().getHasAcceptedTerms()) {
+						if (!ac.getOwner().getAccount().isPublicPage()) {
 							// The only way this could happen is if we created a temporary Facebook account based on the Facebook user id,
 							// and now a user is verifying their Mugshot account from Facebook.
 							// We need to remove sentiment 'love' for the Facebook external account from it, disable it, and remove
@@ -216,6 +216,8 @@
 		    facebookAccount.setSessionKeyValid(true);	
 	    if (applicationEnabled != null)
 	        facebookAccount.setApplicationEnabled(applicationEnabled);
+	    if (applicationEnabled)
+	    	facebookAccount.getExternalAccount().getAccount().setHasAcceptedTerms(true);
 	    
 		// make sure the sentiment is LOVE; there is currently no way to unset it from the user interface,
 		// but we should allow changing the sentiment to HATE or at least INDIFFERENT in the future
@@ -250,6 +252,7 @@
 		}
 		Account account = accounts.createAccountFromResource(res);
 		User user = account.getOwner();
+		// updateOrCreateExternalAccount takes care of setting hasAcceptedTerms to true if the application was enabled 
 		updateOrCreateFacebookAccount(new UserViewpoint(user, Site.MUGSHOT), sessionKey, facebookUserId, applicationEnabled);
 		return user;
 	}
@@ -714,7 +717,7 @@
 		if (resultsCount == 0) {
 			fbmlSb.append("<div>Once there are new updates, they will show up here.</div>");
 		}
-		if (account.getHasAcceptedTerms()) {
+		if (account.isPublicPage()) {
 			String visitMugshotText = "Visit my Mugshot Page"; 
 			if (resultsCount == INITIAL_BLOCKS_PER_PAGE);
 			    visitMugshotText = visitMugshotText + " To See More";

Modified: dumbhippo/trunk/server/src/com/dumbhippo/server/impl/HttpMethodsBean.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/server/impl/HttpMethodsBean.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/server/impl/HttpMethodsBean.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -1232,7 +1232,12 @@
 	}
 	
 	public void doAcceptTerms(UserViewpoint viewpoint) {
-		viewpoint.getViewer().getAccount().setHasAcceptedTerms(true);
+		viewpoint.getViewer().getAccount().setHasAcceptedTerms(true);	
+		// TODO: we can check if we are accepting terms of use from online.gnome.org here
+		// and not set publicPage to true, but we would also need a different place where
+		// we would set it to true (possibly when the person visits there Mugshot account
+		// page for the first time.
+		viewpoint.getViewer().getAccount().setPublicPage(true);
 		// set a better name for a Facebook user, since now the user can edit it, and
 		// we won't be needing to get it from Facebook again
 		if (viewpoint.getViewer().getNickname().contains("Facebook user")) {

Modified: dumbhippo/trunk/server/src/com/dumbhippo/web/SigninBean.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/web/SigninBean.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/web/SigninBean.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -180,7 +180,7 @@
 	public static String initializeAuthentication(HttpServletRequest request, HttpServletResponse response, Client client) {
 		Account account = client.getAccount();
 		User user = account.getOwner();
-		if (account.isActive() && account.getHasAcceptedTerms()) {
+		if (account.isActive()) {
 			setCookie(getSiteForRequest(request), response, user.getGuid(), client.getAuthKey());
 		} else {
 			SigninBean.storeGuid(request.getSession(), user.getGuid());
@@ -201,7 +201,7 @@
 	public static void initializeAuthenticationNoCookie(HttpServletRequest request, Client client) {
 		Account account = client.getAccount();
 		User user = account.getOwner();
-		if (account.isActive() && account.getHasAcceptedTerms()) {
+		if (account.isActive()) {
 			;
 		} else {
 			SigninBean.storeGuid(request.getSession(), user.getGuid());
@@ -223,7 +223,7 @@
 			try {
 				Client client = accountSystem.getExistingClient(userId, clientId);
 				Account account = client.getAccount();
-				if (account.isActive() && account.getHasAcceptedTerms())
+				if (account.isActive())
 					setCookie(getSiteForRequest(request), response, userId, client.getAuthKey());
 				else {
 					unsetCookie(response);

Modified: dumbhippo/trunk/server/src/com/dumbhippo/web/UserSigninBean.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/web/UserSigninBean.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/web/UserSigninBean.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -99,7 +99,7 @@
 	
 	@Override
 	public boolean isActive() {
-		return getUser().getAccount().isActive() && getUser().getAccount().getHasAcceptedTerms();
+		return getUser().getAccount().isActive();
 	}
 	
 	@Override

Modified: dumbhippo/trunk/server/src/com/dumbhippo/web/pages/AbstractPersonPage.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/web/pages/AbstractPersonPage.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/web/pages/AbstractPersonPage.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -138,7 +138,7 @@
 		if (identitySpider.getAccountDisabled(user))
 			this.disabled = true;
 		
-		if ((identitySpider.getAccountDisabled(user) || !user.getAccount().getHasAcceptedTerms()) &&
+		if ((identitySpider.getAccountDisabled(user) || !user.getAccount().isPublicPage()) &&
 		    !getSignin().getViewpoint().isOfUser(user)) {
                 this.viewedUser = null;
                 this.viewedUserId = null;

Modified: dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookServlet.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookServlet.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookServlet.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -340,7 +340,7 @@
 			String labelWidth = "180";
 			String leftSideWidth = "width:490px;";
 			String categoryNameLeftMargin = "margin-left:0px;";
-			if (user.getAccount().getHasAcceptedTerms()) {
+			if (user.getAccount().isPublicPage()) {
 			    xml.appendTextNode("span", "Updates to the information below will be reflected in ",
 				    	           "style", "margin-left:22px;");
 		        xml.appendTextNode("a", "your Mugshot account", "href",
@@ -416,7 +416,7 @@
 		    xml.closeElement(); // fb:editor 		    
 		    xml.closeElement(); // div with the form
 		    
-		    if (!user.getAccount().getHasAcceptedTerms()) {
+		    if (!user.getAccount().isPublicPage()) {
 		    	xml.openElement("div", "style", "width:184px;float:left;color:#333333;background-color:#EDF2F3;border-style:solid;border-width:1px;border-color:#C2D1D4;margin-top:34px;padding:8px;");
 		    	xml.openElement("span", "style", "font-weight:bold;");
 		    	xml.append("Do you already have a Mugshot account?");

Modified: dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookSigninServlet.java
===================================================================
--- dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookSigninServlet.java	2007-12-20 19:10:13 UTC (rev 7105)
+++ dumbhippo/trunk/server/src/com/dumbhippo/web/servlets/FacebookSigninServlet.java	2007-12-20 20:40:27 UTC (rev 7106)
@@ -82,6 +82,7 @@
 			    		if (sess != null)
 			    			sess.invalidate();
 			    		SigninBean.initializeAuthentication(request, response, client);
+			    		ac.getOwner().getAccount().setPublicPage(true);
 			    		return redirectToNextPage(request, response, "/account", null);
 			        } else {
 		            	errorMessage = "FacebookResource for " + facebookUserId + " was not claimed by any user.";   	            	



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]