aboutsummaryrefslogtreecommitdiff
path: root/sx-auth.el
diff options
context:
space:
mode:
authorJonathan Leech-Pepin <jonathan.leechpepin@gmail.com>2014-11-20 12:59:17 -0500
committerJonathan Leech-Pepin <jonathan.leechpepin@gmail.com>2014-11-20 12:59:17 -0500
commit2e2619d7b1ec9a5d7338c5ec224ac0ba920e017c (patch)
treedf786720558379093a4bf27c7c5d51410fae5a20 /sx-auth.el
parent97dae4030bcfb3062bd0909f471f41b5967c88d2 (diff)
Improve method for returning clean filter.
Logic now verifies `include` if `include`,`exclude`,`base` is used. Otherwise verify entire filter.
Diffstat (limited to 'sx-auth.el')
-rw-r--r--sx-auth.el33
1 files changed, 21 insertions, 12 deletions
diff --git a/sx-auth.el b/sx-auth.el
index bd8c206..e67f9a1 100644
--- a/sx-auth.el
+++ b/sx-auth.el
@@ -131,22 +131,31 @@ If it has `auth-required' SUBMETHODs, or no submethod, return t."
"Check if FILTER contains properties that require authentication.
If it has `auth-required' properties, return a filter that has
removed those properties."
- (let ((auth-filters (cl-remove-if #'nil
- ;; Only retrieve the elements that
- ;; are issues.
- (mapcar (lambda (prop)
- (car
- (member prop
- sx-auth-filter-auth)))
- filter)))
- (clean-filter))
- ;; Auth-filters is the filters that are issues
+ (let* ((incl-filter (if (listp filter) (car filter)))
+ (rest-filter (if incl-filter (cdr filter)))
+ (auth-filters (cl-remove-if #'nil
+ ;; Only retrieve the elements that
+ ;; are issues.
+ (mapcar (lambda (prop)
+ (car
+ (member prop
+ sx-auth-filter-auth)))
+ (or incl-filter filter))))
+ clean-filter out-filter)
+ (lwarn "sx-auth filter" :debug "Filter: %S" filter)
+ ;; Auth-filters is the filters that are issues
(when auth-filters
(setq clean-filter
(cl-remove-if (lambda (prop)
(member prop auth-filters))
- filter)))
- clean-filter))
+ (or incl-filter filter))))
+ (if (and incl-filter clean-filter)
+ (setq out-filter
+ (cons clean-filter rest-filter))
+ (setq out-filter clean-filter))
+ (lwarn "sx-auth filter2" :debug "Filter property %s requires auth. %S"
+ auth-filters out-filter)
+ out-filter))
(provide 'sx-auth)
;;; sx-auth.el ends here