Commit Graph

58 Commits

Author SHA1 Message Date
d746c1bede
Notify the user after three failed login attempts
Some checks failed
continuous-integration/drone/push Build is failing
2021-07-30 15:01:04 +02:00
24f7d9b4f7
Only send an email about failed totp after three failed attempts
Some checks failed
continuous-integration/drone/push Build is failing
2021-07-30 14:42:03 +02:00
5cfc9bf2f9
Disable the user account after 10 failed password attempts
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-29 18:45:22 +02:00
3572ac4b82
Send a notification on failed TOTP
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-29 18:05:25 +02:00
1571dfa825 Task mentions (#926)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#926
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-29 15:42:49 +00:00
eae3cbc7bb
Replace jwt-go with github.com/golang-jwt/jwt
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-27 10:46:28 +02:00
2a80e552cc
Save user tokens as varchar(450) and not text to fix mysql indexing issues
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-14 14:48:27 +02:00
7e229a1b83
Save user tokens as text and not varchar
All checks were successful
continuous-integration/drone/push Build is passing
2021-07-14 12:43:28 +02:00
4216ed7277 Refactor user email confirmation + password reset handling (#919)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#919
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-07-13 20:56:02 +00:00
78a206c818
Add setting for first day of the week
All checks were successful
continuous-integration/drone/push Build is passing
2021-06-03 18:11:44 +02:00
3277f6acf7 Add default list setting (#875)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: Sytone <github@sytone.com>
Reviewed-on: vikunja/api#875
Reviewed-by: konrad <konrad@kola-entertainments.de>
Co-authored-by: sytone <kolaente@sytone.com>
Co-committed-by: sytone <kolaente@sytone.com>
2021-06-02 21:20:22 +00:00
b76ad8efe2
Add more logging and better error messages for openid authentication + clarify docs
All checks were successful
continuous-integration/drone/push Build is passing
2021-05-16 13:23:10 +02:00
d07b284ee3 Add reminders for overdue tasks (#832)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#832
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-11 15:08:43 +00:00
b3c604fd2f Add link share password authentication (#831)
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: vikunja/api#831
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-04-11 13:17:50 +00:00
126f3acdc8
Enable searching users by full email or name
All checks were successful
continuous-integration/drone/push Build is passing
2021-04-07 18:28:58 +02:00
7b29ac7128
Fix user uploaded avatars
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-23 22:32:23 +01:00
6de3d8b3a1
Explicitly check if there are Ids before trying to get items by a list of Ids
All checks were successful
continuous-integration/drone/push Build is passing
2021-03-02 18:40:39 +01:00
2178166ece Add crud endpoints for notifications (#801)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#801
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-21 14:50:34 +00:00
c873c1ec32
Send a notification to the user when they are added to the list
Some checks failed
continuous-integration/drone/push Build is failing
2021-02-17 20:48:06 +01:00
911e5b22ee
Fix lint
All checks were successful
continuous-integration/drone/push Build is passing
2021-02-14 23:11:39 +01:00
83f003355d
Fix sending notifications to users if the user object didn't have an email
Some checks failed
continuous-integration/drone/push Build is failing
2021-02-14 22:44:01 +01:00
015ca310e9 Add notifications package for easy sending of notifications (#779)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#779
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-07 21:05:09 +00:00
0ab9ce9ec4 Add events (#777)
All checks were successful
continuous-integration/drone/push Build is passing
Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#777
Co-authored-by: konrad <konrad@kola-entertainments.de>
Co-committed-by: konrad <konrad@kola-entertainments.de>
2021-02-02 22:48:37 +00:00
c4a71016b8
Update copyright year
Some checks failed
continuous-integration/drone/push Build is failing
2021-02-02 20:19:13 +01:00
ac23536c36
Make sure a password reset token can be used only once
All checks were successful
continuous-integration/drone/push Build is passing
2020-12-30 21:51:45 +01:00
787044628f
Fix password reset without a reseet token 2020-12-30 21:43:14 +01:00
456af4d4a9
Fix go header lint
All checks were successful
continuous-integration/drone/push Build is passing
2020-12-29 02:04:20 +01:00
9baf6d39bd
Change license to AGPLv3
Some checks failed
continuous-integration/drone/push Build is failing
2020-12-23 16:41:52 +01:00
8d1a09b5a2 Use db sessions everywere (#750)
Some checks failed
continuous-integration/drone/push Build is failing
Fix lint

Fix lint

Fix loading tasks with search

Fix loading lists

Fix loading task

Fix loading lists and namespaces

Fix tests

Fix user commands

Fix upload

Fix migration handlers

Fix all manual root handlers

Fix session in avatar

Fix session in list duplication & routes

Use sessions in migration code

Make sure the openid stuff uses a session

Add alias for db type in db package

Use sessions for file

Use a session for everything in users

Use a session for everything in users

Make sure to use a session everywhere in models

Create new session from db

Add session handling for user list

Add session handling for unsplash

Add session handling for teams and related

Add session handling for tasks and related entities

Add session handling for task reminders

Add session handling for task relations

Add session handling for task comments

Add session handling for task collections

Add session handling for task attachments

Add session handling for task assignees

Add session handling for saved filters

Add session handling for namespace and related types

Add session handling for namespace and related types

Add session handling for list users

Add session handling for list tests

Add session handling to list teams and related entities

Add session handling for link shares and related entities

Add session handling for labels and related entities

Add session handling for kanban and related entities

Add session handling for bulk task and related entities

Add session handling for lists and related entities

Add session configuration for web handler

Update web handler

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#750
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-23 15:32:28 +00:00
2d4e2e452c Add task filter for lists and namespaces (#748)
All checks were successful
continuous-integration/drone/push Build is passing
Add more tests for getting namespaces

Fix namespaces not found

Fix namespaces not found

Make like the default

Update docs & fix docs

Enable searching namespaces by their ids

Enable searching lists by their ids

Enable searching labels by their ids

Enable searching by user ids

Update docs

Add namespace filter

Add task filter for lists

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#748
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-21 23:13:15 +00:00
b2e4fde63a Add email reminders (#743)
All checks were successful
continuous-integration/drone/push Build is passing
Fix tests

Expose email reminder setting through jwt

Set reminders on by default

Fix lint

Make user email configurable

Expose email reminder setting through /info

Don't try to send any reminders if none were found

More spacing for buttons

Fix db time format

Enable reminders by default

Make emails look more like the frontend

Add config to disable it

Add sending emaisl

Add getting all task users and reminding them

Add getting the next reminder in a cron

Move task reminder to separate file

Add cron

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#743
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 23:21:17 +00:00
b0d4902406 Make sure all int64 db fields are using bigint when actually storing the data (#741)
Some checks reported errors
continuous-integration/drone/push Build was killed
Fix lint

Fix migration query for postgres

Fix migration statements

Add migration to make all int(11) fields bigint by default

Make all int(11) fields bigint by default

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#741
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 16:51:22 +00:00
0bd2632d29 Add login via email (#740)
All checks were successful
continuous-integration/drone/push Build is passing
Add login via email

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#740
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 13:54:49 +00:00
8d739b2cf9 Refactor adding more details to tasks (#739)
All checks were successful
continuous-integration/drone/push Build is passing
Refactor adding more details to tasks

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#739
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-12-18 13:54:36 +00:00
d1c65935e6
Add name field to users
All checks were successful
continuous-integration/drone/push Build is passing
2020-11-21 21:51:55 +01:00
2b5c9ae7a8 Authentication with OpenID Connect providers (#713)
All checks were successful
continuous-integration/drone/push Build is passing
Add config docs

Lint

Move provider-related stuff to separate file

Refactor getting auth providers

Fix tests

Fix user tests

Fix openid tests

Add swagger docs

Fix lint

Fix lint issues

Fix checking if the user already exists

Make sure to create a new namespace for new users

Docs

Add tests for openid

Remove unnessecary err check

Consistently return nil users if creating a new user failed

Move sending confirmation email to separate function

Better variable names

Move checks to separate functions

Refactor creating user into seperate file

Fix creating new local users

Test creating new users from different issuers

Generate a random username right away if no preferred username has been given

Add todo

Cache openid providers

Add getting int clientids

Fix migration

Move creating tokens to auth package

Add getting or creating a third party user

Add parsing claims

Add retreiving auth tokens

Add token callback from openid package

Add check for provider key

Add routes

Start adding openid auth handler

Add config for openid auth

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#713
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-11-21 16:38:58 +00:00
699d3d6060 Add Golangci Lint (#676)
All checks were successful
continuous-integration/drone/push Build is passing
Increase golangci timeout

Fix installing golangci-lint in ci

Remove mage targets replaced by golangci

Run golint in ci

Add goheader linter

Enable & fix more linters

Fix lint issues

Add mage target to automagically fix issues found by golangci

golangci-lint run --fix

Add golangci config

Add golangci mage target

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#676
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-10-11 20:10:03 +00:00
1776eb56fe
Fix upload avatar not working
All checks were successful
continuous-integration/drone/push Build is passing
Signed-off-by: kolaente <k@knt.li>
2020-09-27 12:50:52 +02:00
0fb2edf051 Saved filters (#655)
All checks were successful
continuous-integration/drone/push Build is passing
Fix updating saved filters

Fix filter not loadable because of missing param declaration

Add fancy special cases for postgres exists in db

Add special case for postgrs json

Add read one test

Add rights tests

Fix lint

Fixed getting a single saved filter from db

Add tests for the usual crud methods

Add test stubs and TODOs

Add test for converting saved filter ids to list ids and vice versa

Add test fixture for saved filters and fix existing tests

Fix exposed json variables of filters

Fix creating saved filters table for tests

Add getting saved filters as pseudo namespace

Cleanup

Refactor getting all namespaces to use a map for easier handling of pseudo namespaces

Add custom erros for saved filters

Swagger docs

Fix lint

Add routes for saved filters

Add alias for mage build

Add method to get a saved filter from the lists endpoint

Add getting tasks from a saved filter

Add create, update, delete, read one methods

Add rights methods for saved filters

Fix docs minLength

Add saved filters column

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#655
Co-Authored-By: konrad <konrad@kola-entertainments.de>
Co-Committed-By: konrad <konrad@kola-entertainments.de>
2020-09-26 21:02:17 +00:00
16dbcfda7e Manage users via cli (#632)
Some checks failed
continuous-integration/drone/push Build is failing
Add users cli commands to docs

Fix checking for changing username or user email

Add user status change command

Make sure only one user exists with a particular email when updating

Add password reset

Add user id to help

Remove user delete (too many possible side effects, postponed until later)

Make sure to fail on any errors

Fail if changing the username would result in duplicate users

Add user update command

Add user create command

Add command stubs for all commands

Render users in a beautiful table

Started adding user list command

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#632
2020-08-13 15:34:02 +00:00
d718d247c8
Fix users with disabled totp but not enrolled being unable to login
All checks were successful
continuous-integration/drone/push Build is passing
2020-08-07 16:41:35 +02:00
dfb7730b63 More avatar providers (#622)
All checks were successful
continuous-integration/drone/push Build is passing
Don't fail if the last avatar file does not exist when deleting it

Fix lint

Remove old global avatar setting and update docs

Generate docs

Invalidate the avatar cache when uploading a new one

Add debug logs

Add caching for upload avatars

Add cache locks

Fix encoding

Resize the uploaded image to a max of 1024 pixels

Remove the old uploaded avatar if one already exists

Add mimetype check for images

Set avatar provider to upload when uploading an avatar

Add upload avatar provider

Make font size smaller to let the initials still look good in smaller sizes

Add debug log

Add cache and resizing of initials avatars

Make font size depend on avatar size

Add drawing initials avatar

Add initials provider

Make the initials avatar provider the default

Add routes

Add user avatar settings handler methods

Add user avatar provider field

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#622
2020-08-02 17:16:58 +00:00
08205008e7 Migrate all timestamps to real iso dates (#594)
All checks were successful
continuous-integration/drone/push Build is passing
Fix query param name

Add option to include null results when filtering

Always set db time to gmt

Fix null filter

Fix timezone setting for todoist parsing

Fix timezone setting for wunderlist parsing

Fix import

Fix caldav reminder parsing

Use timezone from config

Add error and test for invalid filter values

Fix integration tests

Remove task collection date hack

Fix task filter

Fix lint

Fix tests and fixtures for date timezone stuff

Properly set timezone

Change fixtures time zone to gmt

Set db timezone

Set created and updated timestamps for all fixtures

Fix lint

Fix test fixtures

Fix misspell

Fix test fixtures

Partially fix tests

Remove timeutil package

Remove adding _unix suffix hack

Remove _unix suffix

Move all timeutil.TimeStamp to time.Time

Remove all Unix suffixes in field names

Add better error messages when running migrations

Make sure to not migrate 0 unix timestamps to 1970 iso dates

Add migration script for sqlite

Add converting sqlite values

Convert 0 unix timestamps to null in postgres

Convert 0 to null in timestamps

Automatically rename _unix suffix

Add all tables and columns for migration

Fix sql migration query for mysql

Fail with an error if trying to use an unsupported dbms

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#594
2020-06-27 17:04:01 +00:00
525a547500
Remove min length for labels, lists, namespaces, tasks and teams
Some checks failed
continuous-integration/drone/push Build is failing
2020-06-17 18:52:23 +02:00
a525787ab7
Update and fix staticcheck
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-29 22:15:21 +02:00
5a04f1ecf4
Add option to disable totp for everyone
All checks were successful
continuous-integration/drone/push Build is passing
2020-05-29 17:15:59 +02:00
7e1d0a81bf
Change totp secret datatype from varchar to text
Some checks reported errors
continuous-integration/drone/push Build was killed
2020-05-09 14:45:57 +02:00
895d9613b5
Add endpoint to disable totp auth
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 01:38:49 +02:00
87d0c9088d
Add endpoint to get the current users totp status
All checks were successful
continuous-integration/drone/push Build is passing
2020-04-18 00:22:59 +02:00
24904585a2 Add 2fa for authentification (#383)
All checks were successful
continuous-integration/drone/push Build is passing
Fix user tests

Add swagger docs

Fix lint

Add totp check when logging in

Make totp enrollment work

Add migration for totp table

go mod vendor

Add routes for totp routes

Add route handler for totp routes

Add basic implementation to enroll a user in totp

Co-authored-by: kolaente <k@knt.li>
Reviewed-on: vikunja/api#383
2020-04-17 19:25:35 +00:00