feat: add ability for users to convert their password login type to oauth/github login (#8105)

* Currently toggled by experiment flag

---------

Co-authored-by: Bruno Quaresma <bruno@coder.com>
This commit is contained in:
Steven Masley
2023-06-30 08:38:48 -04:00
committed by GitHub
co-authored by Bruno Quaresma
parent 357f3b38f7
commit b5f26d9bdf
50 changed files with 2043 additions and 261 deletions
+2 -1
View File
@@ -17,7 +17,8 @@ type Auditable interface {
database.WorkspaceBuild |
database.AuditableGroup |
database.License |
database.WorkspaceProxy
database.WorkspaceProxy |
database.AuditOAuthConvertState
}
// Map is a map of changed fields in an audited resource. It maps field names to
+7
View File
@@ -84,6 +84,8 @@ func ResourceTarget[T Auditable](tgt T) string {
return strconv.Itoa(int(typed.ID))
case database.WorkspaceProxy:
return typed.Name
case database.AuditOAuthConvertState:
return string(typed.ToLoginType)
default:
panic(fmt.Sprintf("unknown resource %T", tgt))
}
@@ -111,6 +113,9 @@ func ResourceID[T Auditable](tgt T) uuid.UUID {
return typed.UUID
case database.WorkspaceProxy:
return typed.ID
case database.AuditOAuthConvertState:
// The merge state is for the given user
return typed.UserID
default:
panic(fmt.Sprintf("unknown resource %T", tgt))
}
@@ -138,6 +143,8 @@ func ResourceType[T Auditable](tgt T) database.ResourceType {
return database.ResourceTypeLicense
case database.WorkspaceProxy:
return database.ResourceTypeWorkspaceProxy
case database.AuditOAuthConvertState:
return database.ResourceTypeConvertLogin
default:
panic(fmt.Sprintf("unknown resource %T", typed))
}