├── public ├── style.css ├── favicon.ico ├── tracking.gif ├── images │ ├── .DS_Store │ ├── raptor.png │ ├── raptor@2x.png │ ├── asm-logotype.png │ ├── deal-with-it.png │ ├── jumbotron-bg.png │ ├── asm-logotype@2x.png │ ├── deal-with-it@2x.png │ ├── feature-digests.png │ ├── feature-receipts.png │ ├── feature-digests@2x.png │ ├── feature-receipts@2x.png │ ├── feature-notifications.png │ └── feature-notifications@2x.png └── js │ └── smooth-scroll.js ├── Godeps ├── _workspace │ ├── .gitignore │ └── src │ │ ├── github.com │ │ ├── boj │ │ │ └── redistore │ │ │ │ ├── .gitignore │ │ │ │ ├── doc.go │ │ │ │ ├── LICENSE │ │ │ │ └── README.md │ │ ├── go-martini │ │ │ └── martini │ │ │ │ ├── wercker.yml │ │ │ │ ├── Godeps │ │ │ │ ├── go_version.go │ │ │ │ ├── .gitignore │ │ │ │ ├── env_test.go │ │ │ │ ├── env.go │ │ │ │ ├── logger_test.go │ │ │ │ ├── logger.go │ │ │ │ ├── LICENSE │ │ │ │ ├── return_handler.go │ │ │ │ └── recovery_test.go │ │ ├── lib │ │ │ └── pq │ │ │ │ ├── .gitignore │ │ │ │ ├── oid │ │ │ │ ├── doc.go │ │ │ │ └── gen.go │ │ │ │ ├── certs │ │ │ │ ├── README │ │ │ │ ├── postgresql.key │ │ │ │ ├── root.crt │ │ │ │ └── server.key │ │ │ │ ├── user_posix.go │ │ │ │ ├── user_windows.go │ │ │ │ ├── LICENSE.md │ │ │ │ ├── conn_xact_test.go │ │ │ │ ├── CONTRIBUTING.md │ │ │ │ ├── url_test.go │ │ │ │ ├── buf.go │ │ │ │ └── url.go │ │ ├── codegangsta │ │ │ └── inject │ │ │ │ ├── .gitignore │ │ │ │ ├── update_readme.sh │ │ │ │ └── LICENSE │ │ ├── martini-contrib │ │ │ ├── cors │ │ │ │ ├── wercker.yml │ │ │ │ └── README.md │ │ │ ├── render │ │ │ │ ├── wercker.yml │ │ │ │ ├── fixtures │ │ │ │ │ ├── basic │ │ │ │ │ │ ├── hypertext.html │ │ │ │ │ │ ├── content.tmpl │ │ │ │ │ │ ├── delims.tmpl │ │ │ │ │ │ ├── hello.tmpl │ │ │ │ │ │ ├── admin │ │ │ │ │ │ │ └── index.tmpl │ │ │ │ │ │ ├── layout.tmpl │ │ │ │ │ │ ├── another_layout.tmpl │ │ │ │ │ │ └── current_layout.tmpl │ │ │ │ │ └── custom_funcs │ │ │ │ │ │ └── index.tmpl │ │ │ │ └── LICENSE │ │ │ ├── secure │ │ │ │ ├── wercker.yml │ │ │ │ └── LICENSE │ │ │ ├── sessionauth │ │ │ │ ├── wercker.yml │ │ │ │ ├── example │ │ │ │ │ ├── templates │ │ │ │ │ │ ├── index.tmpl │ │ │ │ │ │ ├── private.tmpl │ │ │ │ │ │ └── login.tmpl │ │ │ │ │ └── user.go │ │ │ │ └── LICENSE │ │ │ └── sessions │ │ │ │ ├── wercker.yml │ │ │ │ ├── README.md │ │ │ │ ├── LICENSE │ │ │ │ ├── cookie_store.go │ │ │ │ ├── redis_store.go │ │ │ │ └── benchmarks_test.go │ │ ├── technoweenie │ │ │ └── grohl │ │ │ │ ├── script │ │ │ │ ├── test │ │ │ │ └── fmt │ │ │ │ ├── context_test.go │ │ │ │ ├── LICENSE │ │ │ │ ├── statter_test.go │ │ │ │ ├── loggers.go │ │ │ │ ├── timer.go │ │ │ │ ├── context.go │ │ │ │ └── loggers_test.go │ │ ├── jrallison │ │ │ └── go-workers │ │ │ │ ├── job.go │ │ │ │ ├── workers_logger.go │ │ │ │ ├── .travis.yml │ │ │ │ ├── signals_windows.go │ │ │ │ ├── signals_posix.go │ │ │ │ ├── workers_test.go │ │ │ │ ├── middleware_logging.go │ │ │ │ ├── middleware_stats.go │ │ │ │ ├── msg_test.go │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── middleware.go │ │ │ │ ├── all_specs_test.go │ │ │ │ ├── scheduled_test.go │ │ │ │ ├── worker.go │ │ │ │ ├── scheduled.go │ │ │ │ ├── msg.go │ │ │ │ ├── workers.go │ │ │ │ ├── stats.go │ │ │ │ ├── config.go │ │ │ │ ├── enqueue.go │ │ │ │ └── config_test.go │ │ ├── gorilla │ │ │ ├── websocket │ │ │ │ ├── .travis.yml │ │ │ │ ├── AUTHORS │ │ │ │ ├── .gitignore │ │ │ │ ├── examples │ │ │ │ │ ├── autobahn │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ └── fuzzingclient.json │ │ │ │ │ ├── filewatch │ │ │ │ │ │ └── README.md │ │ │ │ │ └── chat │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── main.go │ │ │ │ │ │ └── hub.go │ │ │ │ ├── bench_test.go │ │ │ │ ├── util_test.go │ │ │ │ ├── server_test.go │ │ │ │ ├── util.go │ │ │ │ ├── LICENSE │ │ │ │ ├── json.go │ │ │ │ └── json_test.go │ │ │ ├── context │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ │ ├── securecookie │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ │ └── sessions │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ ├── cupcake │ │ │ └── gokiq │ │ │ │ ├── .gitignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── example_worker │ │ │ │ └── example_worker.go │ │ │ │ ├── example_client │ │ │ │ └── example_client.go │ │ │ │ └── LICENSE │ │ ├── coopernurse │ │ │ └── gorp │ │ │ │ ├── .gitignore │ │ │ │ ├── Makefile │ │ │ │ ├── .travis.yml │ │ │ │ ├── test_all.sh │ │ │ │ ├── errors.go │ │ │ │ └── LICENSE │ │ ├── bitly │ │ │ └── go-simplejson │ │ │ │ ├── .travis.yml │ │ │ │ ├── README.md │ │ │ │ └── LICENSE │ │ ├── kylelemons │ │ │ └── go-gypsy │ │ │ │ └── yaml │ │ │ │ └── Makefile │ │ ├── oxtoacart │ │ │ └── bpool │ │ │ │ ├── bpool.go │ │ │ │ ├── bufferpool.go │ │ │ │ ├── README.md │ │ │ │ └── bytepool.go │ │ ├── ziutek │ │ │ └── mymysql │ │ │ │ ├── mysql │ │ │ │ └── field.go │ │ │ │ ├── godrv │ │ │ │ └── appengine.go │ │ │ │ └── native │ │ │ │ ├── addons.go │ │ │ │ ├── common.go │ │ │ │ └── LICENSE │ │ ├── mattn │ │ │ └── go-sqlite3 │ │ │ │ ├── .travis.yml │ │ │ │ ├── sqlite3_other.go │ │ │ │ ├── sqlite3_windows.go │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ └── backup.go │ │ ├── bradrydzewski │ │ │ └── go.stripe │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── card_test.go │ │ │ │ └── token.go │ │ ├── sirsean │ │ │ └── go-mailgun │ │ │ │ └── mailgun │ │ │ │ ├── mime_message_test.go │ │ │ │ ├── mailgun.go │ │ │ │ └── mime_message.go │ │ └── garyburd │ │ │ └── redigo │ │ │ ├── redis │ │ │ ├── test_test.go │ │ │ └── redis.go │ │ │ └── internal │ │ │ ├── commandinfo.go │ │ │ └── redistest │ │ │ └── testdb.go │ │ └── bitbucket.org │ │ └── liamstask │ │ └── goose │ │ ├── cmd │ │ └── goose │ │ │ ├── cmd.go │ │ │ ├── cmd_dbversion.go │ │ │ ├── cmd_up.go │ │ │ ├── cmd_down.go │ │ │ ├── cmd_redo.go │ │ │ ├── cmd_create.go │ │ │ ├── main.go │ │ │ └── cmd_status.go │ │ └── lib │ │ └── goose │ │ ├── util.go │ │ ├── migrate_test.go │ │ └── dbconf_test.go └── Readme ├── Procfile ├── fig.yml ├── .gitignore ├── install_goose.go ├── db ├── dbconf.yml └── migrations │ ├── 20140226140220_AddStripeColsToAccounts.sql │ ├── 20150331105004_add_updated_at_to_articles.sql │ ├── 20140731133501_add_last_read_at_to_read_receipts.sql │ ├── 20140716150530_add_indexes.sql │ ├── 20140218125529_CreateAccounts.sql │ ├── 20150502160242_add_read_receipt_cols_to_expected_readers.sql │ ├── 20150503154705_add_read_counts_to_articles.sql │ ├── 20140219164920_CreateArticles.sql │ ├── 20140219165544_CreateReaders.sql │ ├── 20140225165143_AddConfirmationColsToAccounts.sql │ ├── 20140219165725_CreateReadReceipts.sql │ └── 20140221111211_CreateExpectedReaders.sql ├── .env.sample ├── assets └── stylesheets │ ├── partials │ ├── _all.scss │ ├── _reset.scss │ ├── _variables.scss │ └── _mixins.scss │ ├── modules │ ├── _grid.scss │ ├── _layout.scss │ ├── _all.scss │ ├── _buttons.scss │ ├── _base.scss │ ├── _call-to-action.scss │ ├── _animation.scss │ ├── _features.scss │ ├── _code.scss │ └── _jumbotron.scss │ └── style.scss ├── Makefile ├── .travis.yml ├── rrweb.go ├── templates ├── new_account_email.tmpl ├── layout.tmpl ├── setup.tmpl └── welcome.txt.tmpl ├── lib ├── req_logger.go ├── new_account_email_job_test.go ├── reader_handlers.go ├── timestamp.go ├── user_callback_job_test.go ├── read_receipt_handlers_test.go ├── read_receipt_test.go ├── reader.go ├── database.go ├── new_account_email_job.go └── hub.go ├── rrworker └── rrworker.go ├── config.rb ├── fake └── responsewriter.go └── LICENSE /public/style.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Godeps/_workspace/.gitignore: -------------------------------------------------------------------------------- 1 | /pkg 2 | /bin 3 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: readraptor 2 | worker: rrworker -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/boj/redistore/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | -------------------------------------------------------------------------------- /fig.yml: -------------------------------------------------------------------------------- 1 | redis: 2 | image: redis:2.8 3 | ports: 4 | - "6380:6379" 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/lib/pq/.gitignore: -------------------------------------------------------------------------------- 1 | .db 2 | *.test 3 | *~ 4 | *.swp 5 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/codegangsta/inject/.gitignore: -------------------------------------------------------------------------------- 1 | inject 2 | inject.test 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/cors/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/render/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/secure/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/sessionauth/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/sessions/wercker.yml: -------------------------------------------------------------------------------- 1 | box: wercker/golang@1.1.1 -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asm-products/readraptor/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/tracking.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asm-products/readraptor/HEAD/public/tracking.gif -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/go-martini/martini/Godeps: -------------------------------------------------------------------------------- 1 | github.com/codegangsta/inject master 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/render/fixtures/basic/hypertext.html: -------------------------------------------------------------------------------- 1 | Hypertext! 2 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/technoweenie/grohl/script/test: -------------------------------------------------------------------------------- 1 | script/fmt 2 | go test -race -v . 3 | -------------------------------------------------------------------------------- /Godeps/_workspace/src/github.com/martini-contrib/render/fixtures/basic/content.tmpl: -------------------------------------------------------------------------------- 1 |
This is the Martini-Sessionauth example
5 | Try to visit this private linkThis is a private link!
5 |Hello {{ .Username }}
6 | Logoutcurl -X POST https://readraptor.com/articles \
22 | -u {{.Account.PrivateKey}}: \
23 | -d '{
24 | "key": "article_1",
25 | "recipients": ["user_1", "user_2"]
26 | }'
27 | curl -I https://readraptor.com/t/{{.Account.PublicKey}}/article_1/user_1/{{.Signature}}.gif
33 | curl -u {{.Account.PrivateKey}}: \
38 | https://readraptor.com/articles/article_1
39 |