packages feed

iptadmin 1.3.3 → 1.3.4

raw patch · 19 files changed

+29/−170 lines, 19 files

Files

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