hide navigation bar if the user is not logged

stable
Juanfran 2015-05-19 15:20:05 +02:00
parent c85e1cf4a0
commit 570c3aa469
6 changed files with 42 additions and 5 deletions

View File

@ -117,6 +117,8 @@ class AuthService extends taiga.Service
@.removeToken()
@.clear()
@currentUserService.removeUser()
register: (data, type, existing) ->
url = @urls.resolve("auth-register")

View File

@ -3,6 +3,7 @@ NavigationBarDirective = (currentUserService) ->
scope.vm = {}
taiga.defineImmutableProperty(scope.vm, "projects", () -> currentUserService.projects.get("recents"))
taiga.defineImmutableProperty(scope.vm, "isAuthenticated", () -> currentUserService.isAuthenticated())
directive = {
templateUrl: "navigation-bar/navigation-bar.html"

View File

@ -17,6 +17,7 @@ describe "navigationBarDirective", () ->
_mocksCurrentUserService = () ->
mocks.currentUserService = {
projects: projects
isAuthenticated: sinon.stub()
}
provide.value "tgCurrentUserService", mocks.currentUserService
@ -66,3 +67,7 @@ describe "navigationBarDirective", () ->
elm = createDirective()
scope.$apply()
expect(elm.isolateScope().vm.projects.size).to.be.equal(3)
mocks.currentUserService.isAuthenticated.returns(true)
expect(elm.isolateScope().vm.isAuthenticated).to.be.true

View File

@ -1,4 +1,4 @@
nav.navbar
nav.navbar(ng-if="vm.isAuthenticated")
div.nav-left
a.logo(
href="#",

View File

@ -9,21 +9,33 @@ class CurrentUserService
]
constructor: (@projectsService, @storageService) ->
@._user = Immutable.Map()
@._user = null
@._projects = Immutable.Map()
@._projectsById = Immutable.Map()
taiga.defineImmutableProperty @, "projects", () => return @._projects
taiga.defineImmutableProperty @, "projectsById", () => return @._projectsById
isAuthenticated: ->
if @.getUser() != null
return true
return false
getUser: () ->
if !@._user.size
if !@._user
userData = @storageService.get("userInfo")
if userData
userData = Immutable.fromJS(userData)
@.setUser(userData) if userData
@.setUser(userData)
return @._user
removeUser: () ->
@._user = null
@._projects = Immutable.Map()
@._projectsById = Immutable.Map()
setUser: (user) ->
@._user = user

View File

@ -88,3 +88,20 @@ describe "tgCurrentUserService", ->
expect(currentUserService._loadProjects).to.be.callOnce
done()
it "is authenticated", () ->
currentUserService.getUser = sinon.stub()
currentUserService.getUser.returns({})
expect(currentUserService.isAuthenticated()).to.be.true
currentUserService.getUser.returns(null)
expect(currentUserService.isAuthenticated()).to.be.false
it "remove user", () ->
currentUserService._user = true
currentUserService.removeUser()
expect(currentUserService._user).to.be.null