iptadmin 1.3.3 → 1.3.4
raw patch · 19 files changed
+29/−170 lines, 19 files
Files
- Changelog +7/−0
- Makefile +2/−5
- html/htmlwrapper.html +0/−20
- iptadmin.cabal +6/−8
- src/IptAdmin/AddChainPage.hs +0/−1
- src/IptAdmin/DelChainPage.hs +4/−4
- src/IptAdmin/DelPage.hs +2/−2
- src/IptAdmin/EditChainPage.hs +0/−1
- src/IptAdmin/EditIpForwPage.hs +0/−1
- src/IptAdmin/EditPage.hs +0/−1
- src/IptAdmin/EditPolicyPage.hs +0/−1
- src/IptAdmin/InsertPage.hs +0/−1
- src/IptAdmin/LoginPage.hs +3/−3
- src/IptAdmin/ShowPage.hs +4/−4
- src/IptAdmin/Utils.hs +1/−0
- src/Template.hs +0/−22
- util/ptmpl/Setup.hs +0/−2
- util/ptmpl/ptmpl.cabal +0/−19
- util/ptmpl/src/Main.hs +0/−75
Changelog view
@@ -1,3 +1,10 @@+iptadmin 1.3.4 19.05.2013:+ * Get rid of ptmpl utility, simplify building+ * Migrate to github++iptadmin 1.3.3 29.12.2012:+ * Allow '_' character in name of user chain+ iptadmin 1.3.2 28.10.2012: * add --no-daemon option to run on centos 5
Makefile view
@@ -1,10 +1,7 @@ all: dist/build/iptadmin/iptadmin -dist/build/iptadmin/iptadmin: src/Template.hs src/IptAdmin/AddPage.hs src/IptAdmin/EditForm/Utils.hs src/IptAdmin/EditForm/Render.hs src/IptAdmin/EditForm/Class.hs src/IptAdmin/EditForm/Types.hs src/IptAdmin/Utils.hs src/IptAdmin/Render.hs src/IptAdmin/EditPage.hs src/IptAdmin/InsertPage.hs src/IptAdmin/EditChainForm/Render.hs src/IptAdmin/EditChainForm/Parse.hs src/IptAdmin/DelPage.hs src/IptAdmin/EditForm.hs src/IptAdmin/DelPage/Render.hs src/IptAdmin/ShowPage/Render.hs src/IptAdmin/EditPolicyPage.hs src/IptAdmin/EditPolicyForm/Render.hs src/IptAdmin/EditChainPage.hs src/IptAdmin/AccessControl.hs src/IptAdmin/DelChainPage.hs src/IptAdmin/LoginPage.hs src/IptAdmin/Types.hs src/IptAdmin/System.hs src/IptAdmin/DelChainPage/Render.hs src/IptAdmin/Config.hs src/IptAdmin/AddChainPage.hs src/IptAdmin/ShowPage.hs src/IptAdmin/Static.hs src/Main.hs iptadmin.cabal- cabal install--src/Template.hs: html/htmlwrapper.html- ptmpl src/Template.hs html/htmlwrapper.html+dist/build/iptadmin/iptadmin: src/IptAdmin/AddPage.hs src/IptAdmin/EditForm/Utils.hs src/IptAdmin/EditForm/Render.hs src/IptAdmin/EditForm/Class.hs src/IptAdmin/EditForm/Types.hs src/IptAdmin/Utils.hs src/IptAdmin/Render.hs src/IptAdmin/EditPage.hs src/IptAdmin/InsertPage.hs src/IptAdmin/EditChainForm/Render.hs src/IptAdmin/EditChainForm/Parse.hs src/IptAdmin/DelPage.hs src/IptAdmin/EditForm.hs src/IptAdmin/DelPage/Render.hs src/IptAdmin/ShowPage/Render.hs src/IptAdmin/EditPolicyPage.hs src/IptAdmin/EditPolicyForm/Render.hs src/IptAdmin/EditChainPage.hs src/IptAdmin/AccessControl.hs src/IptAdmin/DelChainPage.hs src/IptAdmin/LoginPage.hs src/IptAdmin/Types.hs src/IptAdmin/System.hs src/IptAdmin/DelChainPage/Render.hs src/IptAdmin/Config.hs src/IptAdmin/AddChainPage.hs src/IptAdmin/ShowPage.hs src/IptAdmin/Static.hs src/Main.hs iptadmin.cabal+ cabal-dev install install: /usr/bin/iptadmin /etc/iptadmin/iptadmin.conf /etc/pam.d/iptadmin /etc/init.d/iptadmin groupadd iptadmin || true
− html/htmlwrapper.html
@@ -1,20 +0,0 @@-<!--h htmlWrapper content h-->-<?xml version="1.0" encoding="utf-8"?>-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">-<html xmlns="http://www.w3.org/1999/xhtml">- <head>- <title>IptAdmin</title>- <meta name="AUTHOR" content="Evgeny Tarasov" />- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />- <meta name="DESCRIPTION" content="iptables web interface"/>- <meta name="KEYWORDS" content="iptables, haskell" />- <link rel="stylesheet" type="text/css" href="/static/css/iptadmin-theme/jquery-ui-1.8.16.custom.css" />- <script type="text/javascript" src="/static/js/jquery-1.6.2.min.js"></script>- <script type="text/javascript" src="/static/js/jquery-ui-1.8.16.custom.min.js"></script>- <link href="/static/css/iptadmin.css" rel="stylesheet" type="text/css" title="Iptadmin" />- </head>- <body>-!@#content- </body>-</html>-<!--^^^-->
iptadmin.cabal view
@@ -1,6 +1,6 @@ Name: iptadmin-Version: 1.3.3-Cabal-Version: >= 1.4+Version: 1.3.4+Cabal-Version: >= 1.6 Author: Evgeny Tarasov Build-type: Simple Copyright: 2011 Evgeny Tarasov@@ -12,12 +12,7 @@ Synopsis: web-interface for iptables Description: web-interface for iptables with PAM authorization Category: System, Tools, Web, Application-Extra-source-files: html/htmlwrapper.html,- util/ptmpl/Setup.hs,- util/ptmpl/ptmpl.cabal,- util/ptmpl/src/Main.hs- src/Template.hs,- doc/examples/config/iptadmin.conf+Extra-source-files: doc/examples/config/iptadmin.conf doc/examples/init/iptadmin doc/examples/pam/iptadmin INSTALL@@ -41,6 +36,9 @@ static/js/jquery-1.6.2.min.js static/js/jquery-ui-1.8.16.custom.min.js static/js/showpage.js+Source-repository head+ type: git+ location: https://github.com/etarasov/iptadmin.git Executable iptadmin Build-Depends: base >= 4 && < 5,
src/IptAdmin/AddChainPage.hs view
@@ -3,7 +3,6 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditChainForm.Parse import IptAdmin.EditChainForm.Render import IptAdmin.Render
src/IptAdmin/DelChainPage.hs view
@@ -3,10 +3,10 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.DelChainPage.Render import IptAdmin.Render import IptAdmin.System+import IptAdmin.Template import IptAdmin.Types import IptAdmin.Utils import Iptables@@ -30,19 +30,19 @@ Just chain -> if not $ null $ cRules chain then- return $ buildResponse $ Template.htmlWrapper $ renderHtml $+ return $ buildResponse $ renderHtml $ htmlWrapper $ header tableName $ "'" ++ chainName ++ "' chain is not empty. Please, remove all rules before deleting a chain" else let linkedChains = scanTableForLink (cName chain) table in if not $ null linkedChains- then return $ buildResponse $ Template.htmlWrapper $ renderHtml $+ then return $ buildResponse $ renderHtml $ htmlWrapper $ header tableName $ "There are links to the '" ++ chainName ++ "' chain from chains : " ++ show linkedChains ++ ". Please, remove all links before deleting a chain" else- return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do header tableName $ "Delete '" ++ chainName ++ "' user defined chain from '" ++ tableName ++ "' table"
src/IptAdmin/DelPage.hs view
@@ -3,10 +3,10 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.DelPage.Render import IptAdmin.Render import IptAdmin.System+import IptAdmin.Template import IptAdmin.Types import IptAdmin.Utils import Iptables@@ -29,7 +29,7 @@ (_, rule) <- checkParams tableName chainName rulePosition - return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do header tableName $ "Delete rule from '" ++ chainName ++ "' chain in '" ++ tableName ++ "' table in position " ++ show rulePosition
src/IptAdmin/EditChainPage.hs view
@@ -3,7 +3,6 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditChainForm.Parse import IptAdmin.EditChainForm.Render import IptAdmin.Render
src/IptAdmin/EditIpForwPage.hs view
@@ -3,7 +3,6 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditIpForwForm.Render import IptAdmin.Render import IptAdmin.System
src/IptAdmin/EditPage.hs view
@@ -3,7 +3,6 @@ import Control.Monad.Error import Control.Monad.State import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditForm import IptAdmin.EditForm.Class import IptAdmin.EditForm.Render
src/IptAdmin/EditPolicyPage.hs view
@@ -3,7 +3,6 @@ import Control.Monad.Error import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditPolicyForm.Render import IptAdmin.Render import IptAdmin.System
src/IptAdmin/InsertPage.hs view
@@ -4,7 +4,6 @@ import Control.Monad.Error import Control.Monad.State import Happstack.Server.SimpleHTTP-import Template import IptAdmin.EditForm import IptAdmin.EditForm.Render import IptAdmin.EditForm.Class
src/IptAdmin/LoginPage.hs view
@@ -9,9 +9,9 @@ import Data.String import Data.Time import Happstack.Server.SimpleHTTP hiding (Session)-import Template import IptAdmin.Render import IptAdmin.System+import IptAdmin.Template import IptAdmin.Types import IptAdmin.Utils import System.Random@@ -28,7 +28,7 @@ pageHandlerGet :: IptAdminAuth Response pageHandlerGet =- return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do title loginForm "" Nothing @@ -44,7 +44,7 @@ authRes <- liftIO $ authenticate login password case authRes of Just errorMsg ->- return $ buildResponse $ htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do title loginForm login $ Just errorMsg Nothing -> do
src/IptAdmin/ShowPage.hs view
@@ -7,10 +7,10 @@ import Data.IORef import Data.Map hiding (filter) import Happstack.Server.SimpleHTTP-import Template import IptAdmin.Render import IptAdmin.ShowPage.Render import IptAdmin.System+import IptAdmin.Template import IptAdmin.Types import IptAdmin.Utils import Iptables@@ -145,7 +145,7 @@ refreshString (sortFilterTable $ tFilter iptables) (sortFilterTable $ tFilter iptables')- return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do includeJs header "filter" "Iptables Filter table" showPageHtml filter'@@ -160,7 +160,7 @@ (sortNatTable $ tNat iptables) (sortNatTable $ tNat iptables') forwState <- getForwardingState- return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do includeJs header "nat" "Iptables Nat table" renderIpForwarding forwState@@ -175,7 +175,7 @@ refreshString (sortMangleTable $ tMangle iptables) (sortMangleTable $ tMangle iptables')- return $ buildResponse $ Template.htmlWrapper $ renderHtml $ do+ return $ buildResponse $ renderHtml $ htmlWrapper $ do includeJs header "mangle" "Iptables Mangle table. Rule editing is not supported for Mangle yet." showPageHtml mangle
src/IptAdmin/Utils.hs view
@@ -18,6 +18,7 @@ import Text.ParserCombinators.Parsec.Char import Text.ParserCombinators.Parsec.Combinator + buildResponse :: String -> Response buildResponse input = let respPlain = toResponse input in respPlain {rsHeaders = mkHeaders [("Content-type", "text/html; charset=utf8")]}
− src/Template.hs
@@ -1,22 +0,0 @@-module Template where--htmlWrapper content = unlines ["",- ""++"<?xml version=\"1.0\" encoding=\"utf-8\"?>",- ""++"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">",- ""++"<html xmlns=\"http://www.w3.org/1999/xhtml\">",- ""++" <head>",- ""++" <title>IptAdmin</title>",- ""++" <meta name=\"AUTHOR\" content=\"Evgeny Tarasov\" />",- ""++" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />",- ""++" <meta name=\"DESCRIPTION\" content=\"iptables web interface\"/>",- ""++" <meta name=\"KEYWORDS\" content=\"iptables, haskell\" />",- ""++" <link rel=\"stylesheet\" type=\"text/css\" href=\"/static/css/iptadmin-theme/jquery-ui-1.8.16.custom.css\" />",- ""++" <script type=\"text/javascript\" src=\"/static/js/jquery-1.6.2.min.js\"></script>",- ""++" <script type=\"text/javascript\" src=\"/static/js/jquery-ui-1.8.16.custom.min.js\"></script>",- ""++" <link href=\"/static/css/iptadmin.css\" rel=\"stylesheet\" type=\"text/css\" title=\"Iptadmin\" />",- ""++" </head>",- ""++" <body>",- ""++content,- ""++" </body>",- ""++"</html>",- ""]
− util/ptmpl/Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
− util/ptmpl/ptmpl.cabal
@@ -1,19 +0,0 @@-Name: ptmpl-Version: 1.0.0-Cabal-Version: >= 1.2-Author: Evgeny Tarasov-Build-type: Simple-License: BSD3-Copyright: (c) 2009 Evgeny Tarasov-Maintainer: etarasov.ekb@gmail.com-Stability: Stable-Synopsis: Source generator with embedding text(html) templates-Description: The simplest string template generator-Tested-with: GHC==6.10.3--Executable ptmpl- Build-Depends: base >= 3 && < 5,- parsec >= 2.1- Main-Is: Main.hs- Hs-Source-Dirs: src- Ghc-options: -Wall -O2 -fno-warn-unused-do-bind
− util/ptmpl/src/Main.hs
@@ -1,75 +0,0 @@--module Main where--import System.Environment-import Text.ParserCombinators.Parsec--main :: IO ()-main = do- putStrLn "Starting plain templater"- args <- getArgs- let outFile = head args- input <- mapM readFile $ tail args- -- TODO: parse files separately- let outputE = parse ptemplParser "plain templater" $ unlines input- case outputE of- Left e -> print e- Right output -> do- putStrLn "Translation is completed successfully"- writeFile outFile output--ptemplParser :: GenParser Char () String-ptemplParser = do- res <- concat `fmap` many tmplFunc- let header = "module Template where\n\n"- return $ header ++ res--tmplFunc :: GenParser Char () String-tmplFunc = do- try $ manyTill anyChar $- try $ string "<!--h "- spaces- funcName <- many1 alphaNum- spaces- funcParams <- manyTill param $- try $ string "h-->\n"- lines' <- manyTill line $- try $ string "<!--^^^-->" >> spaces- return $ unwords (funcName : funcParams) ++ " = unlines [\"\",\n"- ++ unlines lines'- ++ " \"\"]\n"--param :: GenParser Char () String-param = do- res <- many1 alphaNum- spaces- return res--line :: GenParser Char () String-line = do- elements <- manyTill lineElement $ char '\n'- return $ " \"\""- ++ unwords elements- ++ ","--lineElement :: GenParser Char () String-lineElement = inlineParam <|> plainString--inlineParam :: GenParser Char () String-inlineParam = do- try $ string "!@#"- res <- many1 alphaNum- return $ "++" ++ res--plainString :: GenParser Char () String-plainString = do- res <- manyTill anyChar- ( lookAhead (try $ string "!@#")- <|> lookAhead ((: []) `fmap` char '\n')- )- return $ "++\"" ++ screenString res ++ "\""--screenString :: String -> String-screenString [] = []-screenString (x : xs) | x == '"' = '\\' : '"' : screenString xs- | otherwise = x : screenString xs