Skip to content

Commit a3d524e

Browse files
committed
Merge branch 'master' of github.com:flatfeestack/fastauth into HEAD
2 parents defcaa7 + e9f882f commit a3d524e

File tree

9 files changed

+576
-332
lines changed

9 files changed

+576
-332
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ RUN make
1010
FROM alpine:3.12
1111
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
1212
WORKDIR /app
13-
COPY --from=builder /app/banner.txt /app/fastauth /app/startup.sql ./
13+
COPY --from=builder /app/login.html /app/banner.txt /app/fastauth /app/startup.sql ./
1414
RUN chown -R appuser:appgroup /app
1515
USER appuser
1616
ENTRYPOINT ["./fastauth"]

db.go

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ func dbSelect(email string) (*dbRes, error) {
3535
return &res, nil
3636
}
3737

38-
func insertUser(salt []byte, email string, dk []byte, emailToken string, refreshToken string) error {
39-
stmt, err := db.Prepare("INSERT INTO auth (email, password, role, salt, emailToken, refreshToken) VALUES (?, ?, 'USR', ?, ?, ?)")
38+
func insertUser(salt []byte, email string, dk []byte, role string, emailToken string, refreshToken string) error {
39+
stmt, err := db.Prepare("INSERT INTO auth (email, password, role, salt, emailToken, refreshToken) VALUES (?, ?, ?, ?, ?, ?)")
4040
if err != nil {
4141
return fmt.Errorf("prepare INSERT INTO auth for %v statement failed: %v", email, err)
4242
}
4343
defer stmt.Close()
4444

45-
res, err := stmt.Exec(email, dk, salt, emailToken, refreshToken)
45+
res, err := stmt.Exec(email, dk, []byte(role), salt, emailToken, refreshToken)
4646
return handleErr(res, err, "INSERT INTO auth", email)
4747
}
4848

@@ -181,15 +181,15 @@ func handleErr(res sql.Result, err error, info string, email string) error {
181181

182182
///////// Setup
183183

184-
func addInitialUser(username string, password string) error {
184+
func addInitialUserWithRole(username string, password string, role string) error {
185185
res, err := dbSelect(username)
186186
if res == nil || err != nil {
187187
salt := []byte{0}
188188
dk, err := scrypt.Key([]byte(password), salt, 16384, 8, 1, 32)
189189
if err != nil {
190190
return err
191191
}
192-
err = insertUser(salt, username, dk, "emailToken", "refreshToken")
192+
err = insertUser(salt, username, dk, role, "emailToken", "refreshToken")
193193
if err != nil {
194194
return err
195195
}
@@ -235,13 +235,22 @@ func setupDB() {
235235
//add user for development
236236
users := strings.Split(options.Users, ";")
237237
for _, user := range users {
238-
userpw := strings.Split(user, ":")
239-
if len(userpw) == 2 {
240-
err := addInitialUser(userpw[0], userpw[1])
238+
userPwRole := strings.Split(user, ":")
239+
if len(userPwRole) == 2 {
240+
role := "USR"
241+
err := addInitialUserWithRole(userPwRole[0], userPwRole[1], role)
241242
if err == nil {
242-
log.Printf("insterted user %v", userpw[0])
243+
log.Printf("insterted user %v", userPwRole[0])
243244
} else {
244-
log.Printf("could not insert %v", userpw[0])
245+
log.Printf("could not insert %v", userPwRole[0])
246+
}
247+
} else if len(userPwRole) == 3 {
248+
role := userPwRole[2]
249+
err := addInitialUserWithRole(userPwRole[0], userPwRole[1], role)
250+
if err == nil {
251+
log.Printf("insterted user %v", userPwRole[0])
252+
} else {
253+
log.Printf("could not insert %v", userPwRole[0])
245254
}
246255
} else {
247256
log.Printf("username and password need to be seperated by ':'")

0 commit comments

Comments
 (0)