mirror of
https://github.com/NginxProxyManager/nginx-proxy-manager.git
synced 2025-07-05 01:09:37 +00:00
Adds LDAP auth support
This commit is contained in:
@ -41,14 +41,12 @@ func (s *testsuite) SetupTest() {
|
||||
s.singleRow = sqlmock.NewRows([]string{
|
||||
"id",
|
||||
"name",
|
||||
"nickname",
|
||||
"email",
|
||||
"is_disabled",
|
||||
"is_system",
|
||||
}).AddRow(
|
||||
10,
|
||||
"John Doe",
|
||||
"Jonny",
|
||||
"jon@example.com",
|
||||
false,
|
||||
false,
|
||||
@ -74,14 +72,12 @@ func (s *testsuite) SetupTest() {
|
||||
s.listRows = sqlmock.NewRows([]string{
|
||||
"id",
|
||||
"name",
|
||||
"nickname",
|
||||
"email",
|
||||
"is_disabled",
|
||||
"is_system",
|
||||
}).AddRow(
|
||||
10,
|
||||
"John Doe",
|
||||
"Jonny",
|
||||
"jon@example.com",
|
||||
false,
|
||||
false,
|
||||
@ -104,7 +100,6 @@ func TestExampleTestSuite(t *testing.T) {
|
||||
func assertModel(t *testing.T, m Model) {
|
||||
assert.Equal(t, uint(10), m.ID)
|
||||
assert.Equal(t, "John Doe", m.Name)
|
||||
assert.Equal(t, "Jonny", m.Nickname)
|
||||
assert.Equal(t, "jon@example.com", m.Email)
|
||||
assert.Equal(t, false, m.IsDisabled)
|
||||
assert.Equal(t, false, m.IsSystem)
|
||||
@ -182,7 +177,7 @@ func (s *testsuite) TestSave() {
|
||||
WillReturnRows(s.singleRow)
|
||||
|
||||
s.mock.ExpectBegin()
|
||||
s.mock.ExpectQuery(regexp.QuoteMeta(`INSERT INTO "user" ("created_at","updated_at","is_deleted","name","nickname","email","is_disabled","is_system") VALUES ($1,$2,$3,$4,$5,$6,$7,$8) RETURNING "id"`)).
|
||||
s.mock.ExpectQuery(regexp.QuoteMeta(`INSERT INTO "user" ("created_at","updated_at","is_deleted","name","email","is_disabled","is_system") VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING "id"`)).
|
||||
WithArgs(
|
||||
sqlmock.AnyArg(),
|
||||
sqlmock.AnyArg(),
|
||||
@ -199,7 +194,6 @@ func (s *testsuite) TestSave() {
|
||||
// New model, as system
|
||||
m := Model{
|
||||
Name: "John Doe",
|
||||
Nickname: "Jonny",
|
||||
Email: "JON@example.com", // mixed case on purpose
|
||||
IsSystem: true,
|
||||
}
|
||||
|
@ -2,8 +2,10 @@ package user
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"npm/internal/database"
|
||||
"npm/internal/entity"
|
||||
"npm/internal/entity/auth"
|
||||
"npm/internal/logger"
|
||||
"npm/internal/model"
|
||||
)
|
||||
@ -104,3 +106,14 @@ func GetCapabilities(userID uint) ([]string, error) {
|
||||
}
|
||||
return capabilities, nil
|
||||
}
|
||||
|
||||
// CreateFromLDAPUser will create a user from an LDAP user object
|
||||
func CreateFromLDAPUser(ldapUser *auth.LDAPUser) (Model, error) {
|
||||
user := Model{
|
||||
Email: ldapUser.Email,
|
||||
Name: ldapUser.Name,
|
||||
}
|
||||
err := user.Save()
|
||||
user.generateGravatar()
|
||||
return user, err
|
||||
}
|
||||
|
@ -18,7 +18,6 @@ import (
|
||||
type Model struct {
|
||||
model.ModelBase
|
||||
Name string `json:"name" gorm:"column:name" filter:"name,string"`
|
||||
Nickname string `json:"nickname" gorm:"column:nickname" filter:"nickname,string"`
|
||||
Email string `json:"email" gorm:"column:email" filter:"email,email"`
|
||||
IsDisabled bool `json:"is_disabled" gorm:"column:is_disabled" filter:"is_disabled,boolean"`
|
||||
IsSystem bool `json:"is_system,omitempty" gorm:"column:is_system" filter:"is_system,boolean"`
|
||||
|
Reference in New Issue
Block a user