diff --git a/app/assets/javascripts/app/pages/profile.js b/app/assets/javascripts/app/pages/profile.js index 13fa88566..40bf8c2aa 100644 --- a/app/assets/javascripts/app/pages/profile.js +++ b/app/assets/javascripts/app/pages/profile.js @@ -24,10 +24,13 @@ app.pages.Profile = app.views.Base.extend({ presenter : function(){ var bio = this.model.get("bio") || '' + console.log(this.defaultPresenter().current_user) + return _.extend(this.defaultPresenter(), {text : this.model && app.helpers.textFormatter(bio, this.model), isOwnProfile : this.isOwnProfile(), - showFollowButton : this.showFollowButton() }) + showFollowButton : this.showFollowButton() + }) }, initialize : function(options) { @@ -55,7 +58,8 @@ app.pages.Profile = app.views.Base.extend({ }, followingEnabled : function() { - return app.currentUser.get("following_count") != 0 + var user = app.currentUser + return user.get("following_count") != 0 && user.get("diaspora_id") !== undefined }, showFollowButton : function() { diff --git a/app/assets/templates/profile.jst.hbs b/app/assets/templates/profile.jst.hbs index b6173ac81..55538e53e 100644 --- a/app/assets/templates/profile.jst.hbs +++ b/app/assets/templates/profile.jst.hbs @@ -10,14 +10,24 @@ {{/if}} - - - - - HOME + {{#if current_user.guid}} + + + + + HOME + - - + + {{else}} + + + + DIASPORA + + + + {{/if}} {{#if isOwnProfile}} diff --git a/app/controllers/people_controller.rb b/app/controllers/people_controller.rb index 056f3295d..3a950b1c1 100644 --- a/app/controllers/people_controller.rb +++ b/app/controllers/people_controller.rb @@ -81,7 +81,7 @@ class PeopleController < ApplicationController def show @person = Person.find_from_guid_or_username(params) - flag = FeatureFlagger.new(current_user) + flag = FeatureFlagger.new(current_user, @person) logger.info(request.format) raise(ActiveRecord::RecordNotFound) if remote_profile_with_no_user_session? diff --git a/app/models/feature_flagger.rb b/app/models/feature_flagger.rb index 3ad5eee2c..869af2543 100644 --- a/app/models/feature_flagger.rb +++ b/app/models/feature_flagger.rb @@ -1,6 +1,7 @@ class FeatureFlagger - def initialize(current_user) + def initialize(current_user, person=nil) @current_user = current_user + @person = person end def new_publisher? @@ -8,7 +9,7 @@ class FeatureFlagger end def new_profile? - admin? + person_is_beta? end def new_hotness? @@ -25,4 +26,9 @@ class FeatureFlagger @current_user.try(:admin?) end + def person_is_beta? + return unless @person.present? + Role.is_beta?(@person) || Role.is_admin?(@person) + end + end diff --git a/spec/javascripts/app/pages/profile_spec.js b/spec/javascripts/app/pages/profile_spec.js index d37cf584d..5837be142 100644 --- a/spec/javascripts/app/pages/profile_spec.js +++ b/spec/javascripts/app/pages/profile_spec.js @@ -127,12 +127,17 @@ describe("app.pages.Profile", function(){ describe("followingEnabled", function(){ /* for legacy beta testers */ it("returns false if following_count is zero", function(){ - app.currentUser.set({following_count : 0}) + loginAs({following_count : 0}) + expect(this.page.followingEnabled()).toBeFalsy() + }) + + it("returns false if the user is not signed in", function(){ + logout() expect(this.page.followingEnabled()).toBeFalsy() }) it("returns false if following_count is zero", function(){ - app.currentUser.set({following_count : 1}) + loginAs({following_count : 1}) expect(this.page.followingEnabled()).toBeTruthy() }) })