github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/web/elm/src/UserState.elm (about)

     1  module UserState exposing (UserState(..), isAnonymous, isMember)
     2  
     3  import Concourse
     4  import Dict
     5  
     6  
     7  type UserState
     8      = UserStateLoggedIn Concourse.User
     9      | UserStateLoggedOut
    10      | UserStateUnknown
    11  
    12  
    13  isAnonymous : UserState -> Bool
    14  isAnonymous userState =
    15      case userState of
    16          UserStateLoggedIn _ ->
    17              False
    18  
    19          _ ->
    20              True
    21  
    22  
    23  isMember : { a | teamName : String, userState : UserState } -> Bool
    24  isMember { teamName, userState } =
    25      case userState of
    26          UserStateLoggedIn user ->
    27              if user.isAdmin then
    28                  True
    29  
    30              else
    31                  case Dict.get teamName user.teams of
    32                      Just roles ->
    33                          List.member "pipeline-operator" roles
    34                              || List.member "member" roles
    35                              || List.member "owner" roles
    36  
    37                      Nothing ->
    38                          False
    39  
    40          _ ->
    41              False