hide navigation bar if the user is not logged
parent
c85e1cf4a0
commit
570c3aa469
|
@ -117,6 +117,8 @@ class AuthService extends taiga.Service
|
|||
@.removeToken()
|
||||
@.clear()
|
||||
|
||||
@currentUserService.removeUser()
|
||||
|
||||
register: (data, type, existing) ->
|
||||
url = @urls.resolve("auth-register")
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
nav.navbar
|
||||
nav.navbar(ng-if="vm.isAuthenticated")
|
||||
div.nav-left
|
||||
a.logo(
|
||||
href="#",
|
||||
|
|
|
@ -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")
|
||||
userData = Immutable.fromJS(userData)
|
||||
@.setUser(userData) if userData
|
||||
|
||||
if userData
|
||||
userData = Immutable.fromJS(userData)
|
||||
@.setUser(userData)
|
||||
|
||||
return @._user
|
||||
|
||||
removeUser: () ->
|
||||
@._user = null
|
||||
@._projects = Immutable.Map()
|
||||
@._projectsById = Immutable.Map()
|
||||
|
||||
setUser: (user) ->
|
||||
@._user = user
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue