Refactoring

This commit is contained in:
Chris Mann 2023-07-26 10:35:11 +02:00
parent 9acc67a06a
commit 49f650e350
4 changed files with 40 additions and 1 deletions

View file

@ -165,5 +165,7 @@ func passwordFound(user User, config *ConfigFile, ldapConn *ldap.Conn) (string,
log.Printf("passwordFound %v", searchRes) log.Printf("passwordFound %v", searchRes)
return "", err return "", err
} }
delReq := ldap.NewDelRequest("uid="+user.CN+","+config.InvitationBaseDN, nil)
ldapConn.Del(delReq)
return searchRes.Entries[0].GetAttributeValue("seeAlso"), err return searchRes.Entries[0].GetAttributeValue("seeAlso"), err
} }

View file

@ -86,6 +86,9 @@ func add(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
if user.SN != "" { if user.SN != "" {
req.Attribute("sn", []string{user.SN}) req.Attribute("sn", []string{user.SN})
} }
if user.OtherMailbox != "" {
req.Attribute("carLicense", []string{user.OtherMailbox})
}
if user.Description != "" { if user.Description != "" {
req.Attribute("description", []string{user.Description}) req.Attribute("description", []string{user.Description})
} }
@ -112,8 +115,18 @@ func add(user User, config *ConfigFile, ldapConn *ldap.Conn) error {
if err != nil { if err != nil {
return err return err
} }
return nil
} }
// Send the email
err = sendMail(SendMailTplData{
From: "alice@resdigita.org",
To: user.OtherMailbox,
ContentVars: map[string]string{
"InviteFrom": "alice@resdigita.org",
"SebAddress": "https://www.gvoisins.org",
"Code": "...",
},
})
return err
} }
func modify(user User, config *ConfigFile, ldapConn *ldap.Conn) error { func modify(user User, config *ConfigFile, ldapConn *ldap.Conn) error {

View file

@ -1,12 +1,15 @@
package main package main
import ( import (
"bytes"
"crypto/tls" "crypto/tls"
"log" "log"
"net" "net"
"math/rand" "math/rand"
"html/template"
"github.com/go-ldap/ldap/v3" "github.com/go-ldap/ldap/v3"
// "golang.org/x/text/encoding/unicode" // "golang.org/x/text/encoding/unicode"
) )
@ -47,3 +50,11 @@ func suggestPassword() string {
} }
return password return password
} }
// Sends an email according to the enclosed information
func sendMail(sendMailTplData SendMailTplData) error {
templateMail := template.Must(template.ParseFiles(templatePath + "/" + sendMailTplData.RelTemplatePath))
buf := bytes.NewBuffer([]byte{})
err := templateMail.Execute(buf, sendMailTplData)
return err
}

13
view.go
View file

@ -218,6 +218,19 @@ type LoginFormData struct {
Common NestedCommonTplData Common NestedCommonTplData
} }
// Data to be passed to an email for sending
type SendMailTplData struct {
// Sender of the email
To string
// Receiver of the email
From string
// Relative path (without leading /) to the email template in the templates folder
// usually ending in .txt
RelTemplatePath string
// Variables to be included in the template of the email
ContentVars map[string]string
}
var templatePath = "./templates" var templatePath = "./templates"
func getTemplate(name string) *template.Template { func getTemplate(name string) *template.Template {