Skip to content

Commit

Permalink
add activationID to token remove email
Browse files Browse the repository at this point in the history
  • Loading branch information
ianic committed Nov 23, 2021
1 parent c5596f9 commit 2b7f4da
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 30 deletions.
6 changes: 4 additions & 2 deletions backend/api/signup/signup.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,14 @@ func (r *Signup) activate(ctx context.Context, req signup.ActivateRequest) (*sig
return nil, nil, fmt.Errorf("activation code not found")
}

token, err := secret.Encode(req.ToTokenClaims())
ar := req.ToRecord(remoteIP(ctx))
token, err := secret.Encode(ar.ToTokenClaims())
if err != nil {
log.Printf("failed to encode user token error: %s", err)
return nil, nil, internalServerError
}
ar := req.ToRecord(token, remoteIP(ctx))
ar.Token = token

if err := r.kv.Activations().Put(ar.ID, ar); err != nil {
return nil, nil, err
}
Expand Down
1 change: 0 additions & 1 deletion backend/api/signup/signup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ func TestIntegration(t *testing.T) {
var activationCode string
t.Run("register", func(t *testing.T) {
s := New()
s.noEmail = true
req := signup.RegisterRequest{
Email: "[email protected]",
Name: "test",
Expand Down
8 changes: 4 additions & 4 deletions backend/config/state.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ stages:
ws: ""
functions:
- name: report
hash: 84db2aa5
s3_key: functions/backend/production/report-84db2aa5.zip
hash: f139b807
s3_key: functions/backend/production/report-f139b807.zip
memory_size: 128
timeout: 900
env:
Expand All @@ -24,8 +24,8 @@ stages:
REPORT_BUCKET: mantil-user-reports
SLACK_WEBHOOK: https://hooks.slack.com/services/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
- name: signup
hash: f215fd50
s3_key: functions/backend/production/signup-f215fd50.zip
hash: 197aeafd
s3_key: functions/backend/production/signup-197aeafd.zip
memory_size: 128
timeout: 900
env:
Expand Down
2 changes: 1 addition & 1 deletion backend/config/workspace.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: mantil
id: QNdJFI41T9CSu3h_gapZjg
version: v0.1.29-24-g8427cef
version: v0.1.29-28-gc5596f9
created_at: 1637668423231
nodes:
- name: production
Expand Down
1 change: 0 additions & 1 deletion backend/secret/secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ func Encode(tc signup.TokenClaims) (string, error) {
func TokenForTests(machineID string) string {
tc := signup.TokenClaims{
ActivationCode: signup.TestActivationCode,
Email: signup.TestEmail,
MachineID: machineID,
WorkspaceID: signup.TestActivationCode,
CreatedAt: time.Now().UnixMilli(),
Expand Down
4 changes: 2 additions & 2 deletions backend/secret/secret_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
func TestEncode(t *testing.T) {
ut := signup.TokenClaims{
ActivationCode: "userid",
Email: "[email protected]",
ActivationID: "activationID",
MachineID: "developerMachine",
}

Expand All @@ -23,6 +23,6 @@ func TestEncode(t *testing.T) {
ut2, err := signup.Decode(tkn, cliSecret.SignupPublicKey)
require.NoError(t, err)
require.Equal(t, ut.ActivationCode, ut2.ActivationCode)
require.Equal(t, ut.Email, ut2.Email)
require.Equal(t, ut.ActivationID, ut2.ActivationID)
require.Equal(t, ut.MachineID, ut2.MachineID)
}
1 change: 0 additions & 1 deletion backend/test/register_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,5 @@ func TestSignup(t *testing.T) {
t.Logf("jwt: %s", jwt)

require.Equal(t, machineID, tc.MachineID)
require.Equal(t, signup.TestEmail, tc.Email)
require.Equal(t, signup.TestActivationCode, tc.ActivationCode)
}
3 changes: 1 addition & 2 deletions cli/log/log.go
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,8 @@ func SetClaims(claims *signup.TokenClaims) {
return
}
cliCommand.User = &domain.CliUser{
ID: claims.ActivationCode,
ActivationID: claims.ActivationID,
ActivationCode: claims.ActivationCode,
Email: claims.Email,
}
}

Expand Down
3 changes: 1 addition & 2 deletions domain/event.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,8 @@ type CliCommand struct {
}

type CliUser struct {
ID string `short:"i,omitempty" json:"id"`
ActivationID string `short:"i,omitempty" json:"activationID"`
ActivationCode string `short:"a,omitempty" json:"activationCode"`
Email string `short:"e,omitempty" json:"email"`
}

type CliProject struct {
Expand Down
28 changes: 14 additions & 14 deletions domain/signup/signup.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
// TokenClaims content of the user token
type TokenClaims struct {
ActivationCode string `json:"activationCode,omitempty"`
Email string `json:"email,omitempty"`
ActivationID string `json:"activationID,omitempty"`
WorkspaceID string `json:"workspaceID,omitempty"`
MachineID string `json:"machineID,omitempty"`
CreatedAt int64 `json:"createdAt,omitempty"`
Expand Down Expand Up @@ -58,7 +58,7 @@ func (r *RegisterRequest) Valid() bool {
// RegisterRequest is database record for a registration
type RegisterRecord struct {
ActivationCode string // primary key, each register request gets new activation code
Activations []string // activation ids for this made with this activation token, link to ActivationRecord
Activations []string // activation made with this activation token, link to ActivateRecord
Developer bool // from email
RemoteIP string // of the request
CreatedAt int64 // unix milli
Expand Down Expand Up @@ -118,37 +118,37 @@ func (r *ActivateRequest) Valid() bool {
}

// ToRecord trasforms Request to database Record
func (r *ActivateRequest) ToRecord(token, remoteIP string) ActivateRecord {
func (r *ActivateRequest) ToRecord(remoteIP string) ActivateRecord {
return ActivateRecord{
ID: domain.UID(),
ActivationCode: r.ActivationCode,
WorkspaceID: r.WorkspaceID,
MachineID: r.MachineID,
Token: token,
RemoteIP: remoteIP,
CreatedAt: time.Now().UnixMilli(),
}
}

func (r *ActivateRequest) ToTokenClaims() TokenClaims {
return TokenClaims{
ActivationCode: r.ActivationCode,
WorkspaceID: r.WorkspaceID,
MachineID: r.MachineID,
CreatedAt: time.Now().UnixMilli(),
}
}

type ActivateRecord struct {
ID string // every activation has unique id
ActivationCode string // link to registration
WorkspaceID string // from cli
MachineID string // from cli
Token string // generated for this activation
RemoteIP string // where we got request from
RemoteIP string // from where we got request
CreatedAt int64
}

func (r ActivateRecord) ToTokenClaims() TokenClaims {
return TokenClaims{
ActivationCode: r.ActivationCode,
ActivationID: r.ID,
WorkspaceID: r.WorkspaceID,
MachineID: r.MachineID,
CreatedAt: time.Now().UnixMilli(),
}
}

func (r ActivateRecord) AsWorkspaceRecord() WorkspaceRecord {
return WorkspaceRecord{
ID: r.WorkspaceID,
Expand Down

0 comments on commit 2b7f4da

Please sign in to comment.