513 processAction JoinLobby = do |
513 processAction JoinLobby = do |
514 chan <- client's sendChan |
514 chan <- client's sendChan |
515 rnc <- gets roomsClients |
515 rnc <- gets roomsClients |
516 clientNick <- client's nick |
516 clientNick <- client's nick |
517 clProto <- client's clientProto |
517 clProto <- client's clientProto |
518 isAuthenticated <- liftM (not . B.null) $ client's webPassword |
518 isAuthenticated <- liftM isRegistered $ client's id |
519 isAdmin <- client's isAdministrator |
519 isAdmin <- client's isAdministrator |
520 isContr <- client's isContributor |
520 isContr <- client's isContributor |
521 loggedInClients <- liftM (Prelude.filter isVisible) $! allClientsS |
521 loggedInClients <- liftM (Prelude.filter isVisible) $! allClientsS |
522 let (lobbyNicks, clientsChans) = unzip . L.map (nick &&& sendChan) $ loggedInClients |
522 let (lobbyNicks, clientsChans) = unzip . L.map (nick &&& sendChan) $ loggedInClients |
523 let authenticatedNicks = L.map nick . L.filter (not . B.null . webPassword) $ loggedInClients |
523 let authenticatedNicks = L.map nick . L.filter isRegistered $ loggedInClients |
524 let adminsNicks = L.map nick . L.filter isAdministrator $ loggedInClients |
524 let adminsNicks = L.map nick . L.filter isAdministrator $ loggedInClients |
525 let contrNicks = L.map nick . L.filter isContributor $ loggedInClients |
525 let contrNicks = L.map nick . L.filter isContributor $ loggedInClients |
526 inRoomNicks <- io $ |
526 inRoomNicks <- io $ |
527 allClientsM rnc |
527 allClientsM rnc |
528 >>= filterM (liftM ((/=) lobbyId) . clientRoomM rnc) |
528 >>= filterM (liftM ((/=) lobbyId) . clientRoomM rnc) |