//添加管理员 func (c Admin) Add(admin *models.Admin) revel.Result { if c.Request.Method == "GET" { title := "添加管理员--GoCMS管理系统" role := new(models.Role) role_list := role.GetRoleList() c.Render(title, role_list) return c.RenderTemplate("Setting/Admin/Add.html") } else { var username string = c.Params.Get("username") if len(username) > 0 { admin.Username = username } else { c.Flash.Error("请输入用户名!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } if admin.HasName() { c.Flash.Error("用户名“" + username + "”已存在!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var password string = c.Params.Get("password") if len(password) > 0 { admin.Password = password } else { c.Flash.Error("请输入密码!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var pwdconfirm string = c.Params.Get("pwdconfirm") if len(pwdconfirm) > 0 { if password != pwdconfirm { c.Flash.Error("两次输入密码不一致!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } } else { c.Flash.Error("请输入确认密码!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var email string = c.Params.Get("email") if len(email) > 0 { admin.Email = email } else { c.Flash.Error("请输入E-mail!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } if admin.HasEmail() { c.Flash.Error("E-mail已存在!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var realname string = c.Params.Get("realname") if len(realname) > 0 { admin.Realname = realname } else { c.Flash.Error("请输入真实姓名!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var lang string = c.Params.Get("lang") if len(lang) > 0 { admin.Lang = lang } else { c.Flash.Error("请选择语言!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var roleid string = c.Params.Get("roleid") if len(roleid) > 0 { Roleid, err := strconv.ParseInt(roleid, 10, 64) if err != nil { revel.WARN.Println(err) } admin.Roleid = Roleid } else { c.Flash.Error("请选择所属角色!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } var status string = c.Params.Get("status") if len(status) > 0 { Status, err := strconv.ParseInt(status, 10, 64) if err != nil { revel.WARN.Println(err) } admin.Status = Status } else { c.Flash.Error("请选择状态!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } if ip := c.Request.Header.Get("X-Forwarded-For"); ip != "" { ips := strings.Split(ip, ",") if len(ips) > 0 && ips[0] != "" { rip := strings.Split(ips[0], ":") admin.Lastloginip = rip[0] } } else { ip := strings.Split(c.Request.RemoteAddr, ":") if len(ip) > 0 { if ip[0] != "[" { admin.Lastloginip = ip[0] } } } if admin.Save() { //****************************************** //管理员日志 if UserID, ok := c.Session["UserID"]; ok { UserID, err := strconv.ParseInt(UserID, 10, 64) if err != nil { revel.WARN.Println(err) } admin_info := admin.GetById(UserID) logs := new(models.Logs) desc := "添加管理员:" + username + "|^|管理员管理" logs.Save(admin_info, c.Controller, desc) } //***************************************** c.Flash.Success("添加管理员成功!") c.Flash.Out["url"] = "/Admin/" return c.Redirect("/Message/") } else { c.Flash.Error("添加管理员失败!") c.Flash.Out["url"] = "/Admin/Add/" return c.Redirect("/Message/") } } }