       access)))
 
 (defn allow-premium
+  "
+  Given an org slug and a user map, return an access level of :author or :viewer if the user is a team member
+  of a premium org, false otherwise.
+  "
   [conn org-slug user]
-  (let [access (access-level-for conn org-slug user)]
-    (if (or (= (:access-level access) :premium)
-            (not (:premium? access)))
-      false
-      access)))
+  (let [access (allow-members conn org-slug user)]
+    (if (and (:access-level access)
+             (not= (:access-level access) :public)
+             (:premium? access))
+      access
+      false)))
 
 (defn allow-authors
   "


      ;; a team member of this org
      ((set teams) (:team-id org))
      (merge base-access {:access-level :viewer})

      ;; public access to orgs w/ at least 1 public board AND that allow public boards
      (and

        role (cond admin?  :admin
                   member? :member
                   :else   :anonymous)
        base-access {:role role
                     :premium? premium?}
        premium-viewer-access (if premium? :viewer :author)]
    (cond
      ;; an admin of this org's team
      ((set admin) (:team-id org))
