Added Namer and Description into Authenticator

This commit embeds the Namer interface into Authenticator as well as
adding the new Description method, both of which returns a text.Rich.
These methods are added to provide contextual clues to the user about
each Authenticator method.

Frontends can use the Name as the title, so the name should be short,
concise, and not include the name of the service.
This commit is contained in:
diamondburned 2020-10-26 22:17:38 -07:00
parent e59ab2dbf1
commit 318c85ab65
2 changed files with 25 additions and 0 deletions

View File

@ -202,12 +202,18 @@ type Attachments interface {
// break // success
// }
type Authenticator interface {
// Namer returns a short and concise name of this Authenticator method. The name
// should not include the name of the Service.
Namer
// Authenticate will be called with a list of values with indices correspond to
// the returned slice of AuthenticateEntry.
Authenticate([]string) (Session, error) // Blocking
// AuthenticateForm should return a list of authentication entries for the
// frontend to render.
AuthenticateForm() []AuthenticateEntry
// Description returns the description of this authenticator method.
Description() text.Rich
}
// Author is the interface for an identifiable author. The interface defines

View File

@ -706,7 +706,26 @@ var Main = Packages{
}
`},
Name: "Authenticator",
Embeds: []EmbeddedInterface{{
Comment: Comment{`
Namer returns a short and concise name of this Authenticator
method. The name should not include the name of the Service.
`},
InterfaceName: "Namer",
}},
Methods: []Method{
GetterMethod{
method: method{
Comment: Comment{`
Description returns the description of this
authenticator method.
`},
Name: "Description",
},
Returns: []NamedType{{
Type: MakeQual("text", "Rich"),
}},
},
GetterMethod{
method: method{
Comment: Comment{`