You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by se...@apache.org on 2016/12/13 21:45:56 UTC

[1/2] incubator-ponymail git commit: lib/aaa.lua various bugs #140

Repository: incubator-ponymail
Updated Branches:
  refs/heads/master 2ee0a35db -> f40dd3c63


lib/aaa.lua various bugs #140

Closed this in favor of #292

Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/94e61dbe
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/94e61dbe
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/94e61dbe

Branch: refs/heads/master
Commit: 94e61dbe0bf3120daa07af1c65c4c390f74c4972
Parents: 2ee0a35
Author: Sebb <se...@apache.org>
Authored: Tue Dec 13 11:54:04 2016 +0000
Committer: Sebb <se...@apache.org>
Committed: Tue Dec 13 11:54:04 2016 +0000

----------------------------------------------------------------------
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/94e61dbe/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 450d1ad..8979895 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -60,6 +60,7 @@
 - emails with no body content are ignored (#109)
 - does not handle text/enriched mails (#289)
 - ll.py retrieves results but does not use them (#291)
+- lib/aaa.lua various bugs (#140)
 
 ## CHANGES in 0.9b:
 


[2/2] incubator-ponymail git commit: lua modules should define local functions only

Posted by se...@apache.org.
lua modules should define local functions only

This fixes #294

Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/f40dd3c6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/f40dd3c6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/f40dd3c6

Branch: refs/heads/master
Commit: f40dd3c63edbf8ffb99aea444a5a45ddc8bd9ab3
Parents: 94e61db
Author: Sebb <se...@apache.org>
Authored: Tue Dec 13 21:45:33 2016 +0000
Committer: Sebb <se...@apache.org>
Committed: Tue Dec 13 21:45:33 2016 +0000

----------------------------------------------------------------------
 CHANGELOG.md                          |  1 +
 aaa_examples/aaa_by_email_address.lua |  4 ++--
 aaa_examples/aaa_by_portal.lua        |  2 +-
 aaa_examples/aaa_with_subgroups.lua   |  2 +-
 site/api/atom.lua                     |  2 +-
 site/api/email.lua                    |  2 +-
 site/api/lib/aaa.lua                  |  6 +++---
 site/api/lib/cross.lua                |  4 ++--
 site/api/lib/elastic.lua              | 20 ++++++++++----------
 site/api/lib/user.lua                 | 10 +++++-----
 site/api/mbox.lua                     |  4 ++--
 site/api/static.lua                   |  4 ++--
 site/api/stats.lua                    |  6 +++---
 site/api/thread.lua                   |  4 ++--
 14 files changed, 36 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8979895..25dd5d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -61,6 +61,7 @@
 - does not handle text/enriched mails (#289)
 - ll.py retrieves results but does not use them (#291)
 - lib/aaa.lua various bugs (#140)
+- lua modules should define local functions only (#294)
 
 ## CHANGES in 0.9b:
 

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/aaa_examples/aaa_by_email_address.lua
----------------------------------------------------------------------
diff --git a/aaa_examples/aaa_by_email_address.lua b/aaa_examples/aaa_by_email_address.lua
index 9fd4588..66466d6 100644
--- a/aaa_examples/aaa_by_email_address.lua
+++ b/aaa_examples/aaa_by_email_address.lua
@@ -30,7 +30,7 @@ local grant_access_to = "*" -- use * for access to all, or specify a (sub)domain
 local useAlternates = false -- also check against alternate email addresses??
 
 -- Is email a valid foocorp email?
-function validateEmail(r, email)
+local function validateEmail(r, email)
     -- do a GLOB match, testing email aginst valid_email
     if r:strcmp_match(valid_email, email) then
         return true
@@ -40,7 +40,7 @@ end
 
 
 -- Get a list of domains the user has private email access to (or wildcard if org member)
-function getRights(r, usr)
+local function getRights(r, usr)
     if not usr.credentials then
         return {}
     end

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/aaa_examples/aaa_by_portal.lua
----------------------------------------------------------------------
diff --git a/aaa_examples/aaa_by_portal.lua b/aaa_examples/aaa_by_portal.lua
index ba62470..0eeaa6f 100644
--- a/aaa_examples/aaa_by_portal.lua
+++ b/aaa_examples/aaa_by_portal.lua
@@ -28,7 +28,7 @@ local valid_portal = "www.googleapis.com"
 local grant_access_to = "*" -- use * for access to all, or specify a (sub)domain to grant access to
 
 -- Get rights (full or no access)
-function getRights(r, usr)
+local function getRights(r, usr)
     if not usr.credentials then
         return {}
     end

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/aaa_examples/aaa_with_subgroups.lua
----------------------------------------------------------------------
diff --git a/aaa_examples/aaa_with_subgroups.lua b/aaa_examples/aaa_with_subgroups.lua
index 2b11819..62a12aa 100644
--- a/aaa_examples/aaa_with_subgroups.lua
+++ b/aaa_examples/aaa_with_subgroups.lua
@@ -46,7 +46,7 @@ local access_list = {
 }
 
 -- Get rights (full or no access)
-function getRights(r, usr)
+local function getRights(r, usr)
     if not usr.credentials then
         return {}
     end

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/atom.lua
----------------------------------------------------------------------
diff --git a/site/api/atom.lua b/site/api/atom.lua
index cabdff4..caa6b3a 100644
--- a/site/api/atom.lua
+++ b/site/api/atom.lua
@@ -28,7 +28,7 @@ require 'lib/utils'
 local emls_thrd
 
 -- func for fetching all child emails of a parent topic
-function fetchChildren(r, pdoc, c, biglist)
+local function fetchChildren(r, pdoc, c, biglist)
     c = (c or 0) + 1
     if c > 250 then
         return {}

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/email.lua
----------------------------------------------------------------------
diff --git a/site/api/email.lua b/site/api/email.lua
index a3c4705..8c36fa0 100644
--- a/site/api/email.lua
+++ b/site/api/email.lua
@@ -25,7 +25,7 @@ local cross = require 'lib/cross'
 local config = require 'lib/config'
 
 -- anonymizer func
-function anonymize(doc)
+local function anonymize(doc)
     if doc.from and doc.from ~= JSON.null and #doc.from > 0 then
         doc.from = doc.from:gsub("(%S+)@(%S+)", function(a,b) return a:sub(1,2) .. "..." .. "@" .. b end)
     end

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/lib/aaa.lua
----------------------------------------------------------------------
diff --git a/site/api/lib/aaa.lua b/site/api/lib/aaa.lua
index 4d0de9f..d116909 100644
--- a/site/api/lib/aaa.lua
+++ b/site/api/lib/aaa.lua
@@ -20,7 +20,7 @@
 local config = require 'lib/config'
 
 -- Get a list of PMCs the user is a part of
-function getPMCs(r, uid)
+local function getPMCs(r, uid)
     local groups = {}
     local ldapdata = io.popen( ([[ldapsearch -x -LLL "(|(memberUid=%s)(member=uid=%s,ou=people,dc=apache,dc=org))" cn]]):format(uid,uid) )
     local data = ldapdata:read("*a")
@@ -32,7 +32,7 @@ end
 
 
 -- Is $uid a member of the org?
-function isMember(r, uid)
+local function isMember(r, uid)
     
     -- First, check the 30 minute cache
     local NOWISH = math.floor(os.time() / 1800)
@@ -63,7 +63,7 @@ function isMember(r, uid)
 end
 
 -- Get a list of domains the user has private email access to (or wildcard if org member)
-function getRights(r, usr)
+local function getRights(r, usr)
     if not usr.credentials then
         return {}
     end

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/lib/cross.lua
----------------------------------------------------------------------
diff --git a/site/api/lib/cross.lua b/site/api/lib/cross.lua
index a2fd889..9539ae2 100644
--- a/site/api/lib/cross.lua
+++ b/site/api/lib/cross.lua
@@ -17,7 +17,7 @@
 
 -- cross-server module for making apache and nginx work roughly the same way
 
-function setContentType(r, foo)
+local function setContentType(r, foo)
     if ngx and ngx.header then
         ngx.header['Content-Type'] = foo
     else
@@ -30,7 +30,7 @@ _M = {}
 apr = nil
 pcall(function() apr = require 'apr' end)
 
-function ngstart(handler)
+local function ngstart(handler)
     if ngx then
         _G.apache2 = {
             OK = 0

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/lib/elastic.lua
----------------------------------------------------------------------
diff --git a/site/api/lib/elastic.lua b/site/api/lib/elastic.lua
index a3154f2..c1e0b87 100644
--- a/site/api/lib/elastic.lua
+++ b/site/api/lib/elastic.lua
@@ -65,7 +65,7 @@ local function performRequest(url, query)
 end
 
 -- Standard ES query, returns $size results of any doc of type $doc, sorting by $sitem
-function getHits(query, size, doc, sitem)
+local function getHits(query, size, doc, sitem)
     doc = doc or "mbox"
     sitem = sitem or "epoch"
     size = size or 10
@@ -87,7 +87,7 @@ function getHits(query, size, doc, sitem)
 end
 
 -- Get a single document
-function getDoc (ty, id)
+local function getDoc (ty, id)
     local url = config.es_url  .. ty .. "/" .. id
     local json = performRequest(url)
     if json and json._source then
@@ -101,7 +101,7 @@ end
 
 -- Get results (a'la getHits), but only return email headers, not the body
 -- provides faster transport when we don't need everything
-function getHeaders(query, size, doc)
+local function getHeaders(query, size, doc)
     doc = doc or "mbox"
     size = size or 10
     query = query:gsub(" ", "+")
@@ -118,7 +118,7 @@ function getHeaders(query, size, doc)
 end
 
 -- Same as above, but reverse return order
-function getHeadersReverse(query, size, doc)
+local function getHeadersReverse(query, size, doc)
     doc = doc or "mbox"
     size = size or 10
     query = query:gsub(" ", "+")
@@ -144,7 +144,7 @@ local function contains(table,value)
 end
 
 -- Do a raw ES query with a JSON query
-function raw(query, doctype)
+local function raw(query, doctype)
     doctype = doctype or default_doc
     local url = config.es_url .. doctype .. "/_search"
     local json = performRequest(url, query)
@@ -167,7 +167,7 @@ end
 local scanHasBody = {}
 
 -- Raw query with scroll/scan
-function scan(query, doctype)
+local function scan(query, doctype)
     doctype = doctype or default_doc
     local url = config.es_url .. doctype .. "/_search?search_type=scan&scroll=1m"
     local json = performRequest(url, query)
@@ -184,7 +184,7 @@ function scan(query, doctype)
     return nil
 end
 
-function scroll(sid)
+local function scroll(sid)
     -- We have to do some gsubbing here, as ES expects us to be at the root of the ES URL
     -- But in case we're being proxied, let's just cut off the last part of the URL
     local url = config.es_url:gsub("[^/]+/?$", "") .. "/_search/scroll?scroll=1m&scroll_id=" .. sid
@@ -208,7 +208,7 @@ function scroll(sid)
 end
 
 -- Update a document
-function update(doctype, id, query, consistency)
+local function update(doctype, id, query, consistency)
     doctype = doctype or default_doc
     local url = config.es_url .. doctype .. "/" .. id .. "/_update"
     if consistency then
@@ -219,7 +219,7 @@ function update(doctype, id, query, consistency)
 end
 
 -- Put a new document somewhere
-function index(id, ty, body, consistency)
+local function index(id, ty, body, consistency)
     if not id then
         error("id parameter must be provided", 3)
     end
@@ -231,7 +231,7 @@ function index(id, ty, body, consistency)
     return json or {}
 end
 
-function setDefault(typ)
+local function setDefault(typ)
     default_doc = typ
 end
 

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/lib/user.lua
----------------------------------------------------------------------
diff --git a/site/api/lib/user.lua b/site/api/lib/user.lua
index 065e835..712517a 100644
--- a/site/api/lib/user.lua
+++ b/site/api/lib/user.lua
@@ -18,7 +18,7 @@ local JSON = require 'cjson'
 local elastic = require 'lib/elastic'
 
 -- Get user data from DB
-function getUser(r, override)
+local function getUser(r, override)
     local ocookie = r:getcookie("ponymail")
     local login = {}
     if override or (ocookie and #ocookie > 43) then
@@ -51,7 +51,7 @@ function getUser(r, override)
 end
 
 -- Update or set up a new user
-function updateUser(r, cid, data)
+local function updateUser(r, cid, data)
     local cookie = r:sha1(r.useragent_ip .. ':' .. (math.random(1,9999999)*os.time()) .. r:clock())
     
     -- Does this account exists? If so, grab the prefs first
@@ -88,7 +88,7 @@ end
 
 
 -- Log out a user
-function logoutUser(r, usr)
+local function logoutUser(r, usr)
     if usr and usr.cid then
         local js = elastic.get('account', r:sha1(usr.cid))
         js.internal.cookie = 'nil'
@@ -103,7 +103,7 @@ end
 
 
 -- Save preferences
-function savePreferences(r, usr, alts)
+local function savePreferences(r, usr, alts)
     if usr and usr.cid then
         local js = elastic.get('account', r:sha1(usr.cid))
         js.preferences = usr.preferences
@@ -115,7 +115,7 @@ function savePreferences(r, usr, alts)
 end
 
 -- Save favorites
-function saveFavorites(r, usr)
+local function saveFavorites(r, usr)
     if usr and usr.cid then
         local js = elastic.get('account', r:sha1(usr.cid))
         js.favorites = usr.favorites

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/mbox.lua
----------------------------------------------------------------------
diff --git a/site/api/mbox.lua b/site/api/mbox.lua
index 3bffafd..bd01364 100644
--- a/site/api/mbox.lua
+++ b/site/api/mbox.lua
@@ -27,7 +27,7 @@ local days = {
     31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31 
 }
 
-function leapYear(year)
+local function leapYear(year)
     if (year % 4 == 0) then
         if (year%100 == 0)then                
             if (year %400 == 0) then                    
@@ -51,7 +51,7 @@ end
       for <ar...@cust-asf2.ponee.io>; Fri,  9 Dec 2016 13:48:01 +0100 (CET)
     ...
 ]]--
-function getFromLine(r, source)
+local function getFromLine(r, source)
     local replyTo = source:match("Return%-Path: +<(.-)>")
     if not replyTo then replyTo = "MAILER-DAEMON" end
 

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/static.lua
----------------------------------------------------------------------
diff --git a/site/api/static.lua b/site/api/static.lua
index 6068986..6f6ae98 100644
--- a/site/api/static.lua
+++ b/site/api/static.lua
@@ -28,7 +28,7 @@ local days = {
     31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31 
 }
 
-function sortEmail(thread)
+local function sortEmail(thread)
     if thread.children and type(thread.children) == "table" then
         table.sort (thread.children, function (k1, k2) return k1.epoch > k2.epoch end )
         for k, v in pairs(thread.children) do
@@ -37,7 +37,7 @@ function sortEmail(thread)
     end
 end
 
-function showThreads(r, thread, emails)
+local function showThreads(r, thread, emails)
     r:puts("<ul>\n")
     for k, v in pairs(thread.children) do
         local email = nil

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/stats.lua
----------------------------------------------------------------------
diff --git a/site/api/stats.lua b/site/api/stats.lua
index e8cf3e1..8e009f7 100644
--- a/site/api/stats.lua
+++ b/site/api/stats.lua
@@ -28,7 +28,7 @@ local days = {
     31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 30, 31 
 }
 
-function sortEmail(thread)
+local function sortEmail(thread)
     if thread.children and type(thread.children) == "table" then
         table.sort (thread.children, function (k1, k2) return k1.epoch > k2.epoch end )
         for k, v in pairs(thread.children) do
@@ -39,7 +39,7 @@ end
 
 -- findSubject: match an email with an earlier one with the same topic
 -- used for orphaned emails
-function findSubject(gblob, blob, subject, epoch, maxAge)
+local function findSubject(gblob, blob, subject, epoch, maxAge)
     local subj = subject:gsub("^[A-Za-z]:%s+", "")
     for k, v in pairs(blob) do
         if v.subject and v.subject == subj and v.epoch < epoch and (not maxAge or (maxAge and v.epoch >= (epoch - (maxAge*86400)))) then
@@ -52,7 +52,7 @@ function findSubject(gblob, blob, subject, epoch, maxAge)
     return nil
 end
 
-function leapYear(year)
+local function leapYear(year)
     if (year % 4 == 0) then
         if (year%100 == 0)then                
             if (year %400 == 0) then                    

http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/f40dd3c6/site/api/thread.lua
----------------------------------------------------------------------
diff --git a/site/api/thread.lua b/site/api/thread.lua
index dcbb363..9c92ac8 100644
--- a/site/api/thread.lua
+++ b/site/api/thread.lua
@@ -30,7 +30,7 @@ local emls_thrd
 require 'lib/utils'
 
 -- anonymizer func
-function anonymize(doc)
+local function anonymize(doc)
     if doc.from and doc.from ~= JSON.null and #doc.from > 0 then
         doc.from = doc.from:gsub("(%S+)@(%S+)", function(a,b) return a:sub(1,2) .. "..." .. "@" .. b end)
     end
@@ -44,7 +44,7 @@ function anonymize(doc)
 end
 
 -- func that fetches all children of an original topic email thingy
-function fetchChildren(r, pdoc, c, biglist, rights, account)
+local function fetchChildren(r, pdoc, c, biglist, rights, account)
     c = (c or 0) + 1
     -- don't fetch more than 250 subtrees, we don't want to nest ad nauseam
     if c > 250 then