func EditAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { ctx.Data["Title"] = ctx.Tr("admin.auths.edit") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true ctx.Data["PageIsAuths"] = true ctx.Data["LoginTypes"] = models.LoginTypes ctx.Data["SMTPAuths"] = models.SMTPAuths if ctx.HasError() { ctx.HTML(200, AUTH_EDIT) return } var config core.Conversion switch models.LoginType(form.Type) { case models.LDAP: config = &models.LDAPConfig{ Ldapsource: ldap.Ldapsource{ Host: form.Host, Port: form.Port, UseSSL: form.UseSSL, BaseDN: form.BaseDN, Attributes: form.Attributes, Filter: form.Filter, MsAdSAFormat: form.MsAdSA, Enabled: true, Name: form.AuthName, }, } case models.SMTP: config = &models.SMTPConfig{ Auth: form.SmtpAuth, Host: form.SmtpHost, Port: form.SmtpPort, TLS: form.Tls, } default: ctx.Error(400) return } u := models.LoginSource{ Id: form.Id, Name: form.AuthName, IsActived: form.IsActived, Type: models.LoginType(form.Type), AllowAutoRegister: form.AllowAutoRegister, Cfg: config, } if err := models.UpdateSource(&u); err != nil { ctx.Handle(500, "UpdateSource", err) return } log.Trace("Authentication changed by admin(%s): %s", ctx.User.Name, form.AuthName) ctx.Flash.Success(ctx.Tr("admin.auths.update_success")) ctx.Redirect("/admin/auths/" + ctx.Params(":authid")) }
func NewAuthSourcePost(ctx *middleware.Context, form auth.AuthenticationForm) { ctx.Data["Title"] = ctx.Tr("admin.auths.new") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminAuthentications"] = true ctx.Data["LoginTypes"] = models.LoginTypes ctx.Data["SMTPAuths"] = models.SMTPAuths if ctx.HasError() { ctx.HTML(200, AUTH_NEW) return } var u core.Conversion switch models.LoginType(form.Type) { case models.LDAP: u = &models.LDAPConfig{ Ldapsource: ldap.Ldapsource{ Host: form.Host, Port: form.Port, UseSSL: form.UseSSL, BaseDN: form.BaseDN, Attributes: form.Attributes, Filter: form.Filter, MsAdSAFormat: form.MsAdSA, Enabled: true, Name: form.AuthName, }, } case models.SMTP: u = &models.SMTPConfig{ Auth: form.SmtpAuth, Host: form.SmtpHost, Port: form.SmtpPort, TLS: form.Tls, } default: ctx.Error(400) return } var source = &models.LoginSource{ Type: models.LoginType(form.Type), Name: form.AuthName, IsActived: true, AllowAutoRegister: form.AllowAutoRegister, Cfg: u, } if err := models.CreateSource(source); err != nil { ctx.Handle(500, "CreateSource", err) return } log.Trace("Authentication created by admin(%s): %s", ctx.User.Name, form.AuthName) ctx.Redirect("/admin/auths") }
func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) { ctx.Data["Title"] = ctx.Tr("admin.users.new_account") ctx.Data["PageIsAdmin"] = true ctx.Data["PageIsAdminUsers"] = true if ctx.HasError() { ctx.HTML(200, USER_NEW) return } if form.Password != form.Retype { ctx.Data["Err_Password"] = true ctx.RenderWithErr(ctx.Tr("form.password_not_match"), USER_NEW, &form) return } u := &models.User{ Name: form.UserName, Email: form.Email, Passwd: form.Password, IsActive: true, LoginType: models.PLAIN, } if len(form.LoginType) > 0 { // NOTE: need rewrite. fields := strings.Split(form.LoginType, "-") tp, _ := com.StrTo(fields[0]).Int() u.LoginType = models.LoginType(tp) u.LoginSource, _ = com.StrTo(fields[1]).Int64() u.LoginName = form.LoginName } if err := models.CreateUser(u); err != nil { switch err { case models.ErrUserAlreadyExist: ctx.Data["Err_UserName"] = true ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form) case models.ErrEmailAlreadyUsed: ctx.Data["Err_Email"] = true ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form) case models.ErrUserNameIllegal: ctx.Data["Err_UserName"] = true ctx.RenderWithErr(ctx.Tr("form.illegal_username"), USER_NEW, &form) default: ctx.Handle(500, "CreateUser", err) } return } log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name) ctx.Redirect("/admin/users") }