Browse Source

[CLOUDTRUST-2635] Add a method to send paper cards reminders

master
sispeo 5 years ago
committed by GitHub
parent
commit
bf49836cc7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 34
      Gopkg.lock
  2. 2
      Gopkg.toml
  3. 28
      api/credentials.go

34
Gopkg.lock

@ -2,12 +2,12 @@
[[projects]] [[projects]]
digest = "1:c3f573bbf2ab26cdf2bdc8a4080e1a876927b7746992b36426f833567a569eae" digest = "1:de1b9eadbf96519b22b11ea120dc5c17b9bdf07ea5d0e272451caa4ec0c16c2a"
name = "github.com/cloudtrust/common-service" name = "github.com/cloudtrust/common-service"
packages = ["errors"] packages = ["errors"]
pruneopts = "" pruneopts = ""
revision = "22a293b4b2de317dd0260d47c62b862101551597" revision = "5667719c513d46639b748223a16bd52aca739891"
version = "v2.2.2" version = "v2.2.3"
[[projects]] [[projects]]
digest = "1:bb7f91ab4d1c44a3bb2651c613463c134165bda0282fca891a63b88d1b501997" digest = "1:bb7f91ab4d1c44a3bb2651c613463c134165bda0282fca891a63b88d1b501997"
@ -55,12 +55,12 @@
version = "v0.5.0" version = "v0.5.0"
[[projects]] [[projects]]
digest = "1:03f8f40437ef8b7a1c7aed0ab000474245559153639ee44d6d43ec8eb9e24eda" digest = "1:bc24d32292c699c0cc375ae09fef8340c37360f46ec60cad98312b699c039422"
name = "github.com/golang/mock" name = "github.com/golang/mock"
packages = ["gomock"] packages = ["gomock"]
pruneopts = "" pruneopts = ""
revision = "3a35fb6e3e18b9dbfee291262260dee7372d2a92" revision = "f7b1909c82a8958747e5c87c6a5c3b2eaed8a33d"
version = "v1.4.3" version = "v1.4.4"
[[projects]] [[projects]]
digest = "1:02c7a8570f619bdb5620e8f6a16407455c8e63433d8a9e829f618813dc7f89a5" digest = "1:02c7a8570f619bdb5620e8f6a16407455c8e63433d8a9e829f618813dc7f89a5"
@ -71,12 +71,12 @@
version = "v1.4.2" version = "v1.4.2"
[[projects]] [[projects]]
digest = "1:fbab76ba211c99fcd45a481a32530efc229f3510fd94889f361dcaf13ff05fe0" digest = "1:20e3b61797cba6a42b110320b703a0b86e2771f324411e75557c2acbc819b1b5"
name = "github.com/gorilla/mux" name = "github.com/gorilla/mux"
packages = ["."] packages = ["."]
pruneopts = "" pruneopts = ""
revision = "75dcda0896e109a2a22c9315bca3bb21b87b2ba5" revision = "98cb6bf42e086f6af920b965c38cacc07402d51b"
version = "v1.7.4" version = "v1.8.0"
[[projects]] [[projects]]
digest = "1:1d7e1867c49a6dd9856598ef7c3123604ea3daabf5b83f303ff457bcbc410b1d" digest = "1:1d7e1867c49a6dd9856598ef7c3123604ea3daabf5b83f303ff457bcbc410b1d"
@ -96,14 +96,14 @@
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:de5481dda0c081b66450e391bbb1a5c4435b13e3c0bbf0133ba1a5baeda7b7af" digest = "1:031ad18b91524104af81d35ff8a49467b9ae67e1bc3a5d7a81e4ad97ab0d046f"
name = "github.com/pquerna/cachecontrol" name = "github.com/pquerna/cachecontrol"
packages = [ packages = [
".", ".",
"cacheobject", "cacheobject",
] ]
pruneopts = "" pruneopts = ""
revision = "1555304b9b35fdd2b425bccf1a5613677705e7d0" revision = "67c6ae64274f94504771263b85e5a38700cbf31e"
[[projects]] [[projects]]
digest = "1:688428eeb1ca80d92599eb3254bdf91b51d7e232fead3a73844c1f201a281e51" digest = "1:688428eeb1ca80d92599eb3254bdf91b51d7e232fead3a73844c1f201a281e51"
@ -123,7 +123,7 @@
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:2b1ff27f17455187b412669f2aa359be51dc79661bd34cf8f54fa67e1ea106d0" digest = "1:678eb8275bb8e3394737d136f55da106956c699fb4ccc3e72aa115123cd28d0d"
name = "golang.org/x/crypto" name = "golang.org/x/crypto"
packages = [ packages = [
"ed25519", "ed25519",
@ -131,11 +131,11 @@
"pbkdf2", "pbkdf2",
] ]
pruneopts = "" pruneopts = ""
revision = "ab33eee955e00ff7c973405b2780aca48d293014" revision = "5c72a883971a4325f8c62bf07b6d38c20ea47a6a"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:92cf07fb2067987a7b46e1f63aa50ccde3ee8a7315ffca3e4e8a3a147ac9a717" digest = "1:6328971ba64f6476ca35920ff04f1be7f04c35ce450d0fbe8f65f82c1cd2c6ab"
name = "golang.org/x/net" name = "golang.org/x/net"
packages = [ packages = [
"context", "context",
@ -144,18 +144,18 @@
"publicsuffix", "publicsuffix",
] ]
pruneopts = "" pruneopts = ""
revision = "ab34263943818b32f575efc978a3d24e80b04bd7" revision = "62affa334b73ec65ed44a326519ac12c421905e3"
[[projects]] [[projects]]
branch = "master" branch = "master"
digest = "1:571c7f844acf3c916ac5997f82f227c49a38490f1fca65afd47d64d188ced96e" digest = "1:db6b3ebfd8658790fcd62d57df504d212b97048ddd6f3da525200e2030f91f70"
name = "golang.org/x/oauth2" name = "golang.org/x/oauth2"
packages = [ packages = [
".", ".",
"internal", "internal",
] ]
pruneopts = "" pruneopts = ""
revision = "bf48bf16ab8d622ce64ec6ce98d2c98f916b6303" revision = "5d25da1a8d43b66f2898c444f899c7bcfd6a407e"
[[projects]] [[projects]]
digest = "1:fccda34e4c58111b1908d8d69bf8d57c41c8e2542bc18ec8cd38c4fa21057f71" digest = "1:fccda34e4c58111b1908d8d69bf8d57c41c8e2542bc18ec8cd38c4fa21057f71"

2
Gopkg.toml

@ -22,7 +22,7 @@
[[constraint]] [[constraint]]
name = "github.com/cloudtrust/common-service" name = "github.com/cloudtrust/common-service"
version = "2.2.2" version = "2.2.3"
[[constraint]] [[constraint]]
name = "github.com/pkg/errors" name = "github.com/pkg/errors"

28
api/credentials.go

@ -1,6 +1,8 @@
package api package api
import ( import (
"strconv"
"github.com/cloudtrust/keycloak-client" "github.com/cloudtrust/keycloak-client"
"gopkg.in/h2non/gentleman.v2/plugins/body" "gopkg.in/h2non/gentleman.v2/plugins/body"
"gopkg.in/h2non/gentleman.v2/plugins/url" "gopkg.in/h2non/gentleman.v2/plugins/url"
@ -15,7 +17,9 @@ const (
moveFirstPath = credentialIDPath + "/moveToFirst" moveFirstPath = credentialIDPath + "/moveToFirst"
moveAfterPath = credentialIDPath + "/moveAfter/:previousCredentialID" moveAfterPath = credentialIDPath + "/moveAfter/:previousCredentialID"
// Paper card API // Paper card API
resetFailuresPath = "/auth/realms/:realm/papercard/users/:userId/credentials/:credentialId/resetFailures" papercardPath = "/auth/realms/:realm/papercard"
resetFailuresPath = papercardPath + "/users/:userId/credentials/:credentialId/resetFailures"
sendPaperCardsRemindersPath = papercardPath + "/expiryReminders"
) )
// ResetPassword resets password of the user. // ResetPassword resets password of the user.
@ -71,3 +75,25 @@ func (c *Client) UpdatePassword(accessToken, realm, currentPassword, newPassword
func (c *Client) ResetPapercardFailures(accessToken, realmName, userID, credentialID string) error { func (c *Client) ResetPapercardFailures(accessToken, realmName, userID, credentialID string) error {
return c.put(accessToken, url.Path(resetFailuresPath), url.Param("realm", realmName), url.Param("userId", userID), url.Param("credentialId", credentialID)) return c.put(accessToken, url.Path(resetFailuresPath), url.Param("realm", realmName), url.Param("userId", userID), url.Param("credentialId", credentialID))
} }
// RemindersResponse struct
type RemindersResponse struct {
Partial bool `json:"partial"`
}
// SendPaperCardsReminders sends reminders to users of paper cards which will soon be expired
func (c *Client) SendPaperCardsReminders(accessToken, realmName string, firstReminderDays, nextReminderDays, maxCount int) (bool, error) {
var paramKV = []string{
"firstReminderDays", strconv.Itoa(firstReminderDays),
"nextReminderDays", strconv.Itoa(nextReminderDays),
"maxCount", strconv.Itoa(maxCount),
}
var resp RemindersResponse
var plugins = append(createQueryPlugins(paramKV...), url.Path(sendPaperCardsRemindersPath), url.Param("realm", realmName))
var _, err = c.post(accessToken, &resp, plugins...)
if err != nil {
return false, err
}
return resp.Partial, err
}

Loading…
Cancel
Save