By definition static files have no authorization because we recommend they being served directly by the web server bypassing web2py entirely.
You can put then in a myfiles subfolder of the app and create your own action:
@auth.requires_login()
def static():
import contenttype
filename = os.path.join(request.folder, 'myfiles', '/'.join(rqeuest.args))
response.headers['Content-Type'] = contenttype.contenttype(filename)
if not user_permissions(auth, filename): # <-- you implement this
raise HTTP(401)
if not os.path.exists(filename):
raise HTTP(404)
with open(filename) as fp:
return fp.read()