github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/routers/root/RUpdateAdministrator.go (about)

     1  package root
     2  
     3  import (
     4  	"github.com/insionng/makross"
     5  	
     6  	"strconv"
     7  	"github.com/insionng/yougam/helper"
     8  	"github.com/insionng/yougam/models"
     9  )
    10  
    11  func GetRUpdateRootHandler(self *makross.Context) error {
    12  	self.Set("catpage", "RUpdateAdministratorHandler")
    13  	TplNames := "root/update_user"
    14  
    15  	if userid := self.Param("uid").MustInt64(); userid > 0 {
    16  		if usrinfo, err := models.GetUser(userid); err == nil && usrinfo != nil {
    17  			self.Set("usr", usrinfo)
    18  		}
    19  		return self.Render(TplNames)
    20  
    21  	} else {
    22  		return self.Redirect("/root/read/administrator/")
    23  	}
    24  
    25  }
    26  
    27  func PostRUpdateRootHandler(self *makross.Context) error {
    28  	
    29  
    30  	self.Set("catpage", "RUpdateAdministratorHandler")
    31  
    32  	if userid := self.Param("uid").MustInt64(); userid > 0 {
    33  		username := self.FormValue("username")
    34  		nickname := self.FormValue("nickname")
    35  		password := self.FormValue("password")
    36  		repassword := self.FormValue("repassword")
    37  		content := self.FormValue("content")
    38  		mobile := self.FormValue("mobile")
    39  		email := self.FormValue("email")
    40  		group := self.FormValue("group")
    41  		gender := self.Args("gender").MustInt64()
    42  
    43  		if len(password) > 0 {
    44  			if helper.CheckPassword(password) == false {
    45  				self.Flash.Error("密码含有非法字符或密码过短(至少4~30位密码)!")
    46  				return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    47  
    48  			} else if password != repassword {
    49  
    50  				self.Flash.Error("密码前后不一致,请确认你输入的密码正确无误!")
    51  				return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    52  
    53  			}
    54  		} else {
    55  
    56  			self.Flash.Error("密码为空!")
    57  			return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    58  
    59  		}
    60  
    61  		if username == "" {
    62  			self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!")
    63  			return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    64  
    65  		}
    66  
    67  		if email != "" {
    68  			if helper.CheckEmail(email) == false {
    69  				self.Flash.Error("邮箱格式错误!")
    70  				return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    71  
    72  			}
    73  
    74  		} else {
    75  			if helper.CheckEmail(username) == true {
    76  				email = username
    77  			} else if helper.CheckUsername(username) == false {
    78  				self.Flash.Error("用户名是为永久性设定,不能少于4个字或多于30个字,请慎重考虑,不能为空!")
    79  				return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
    80  
    81  			}
    82  
    83  		}
    84  
    85  		usr, _ := models.GetUser(userid)
    86  		//usr.Id = userid
    87  		usr.Email = email
    88  		usr.Username = username
    89  		usr.Nickname = nickname
    90  		usr.Password = helper.EncryptHash(password, nil)
    91  		usr.Group = group
    92  		usr.Content = content
    93  		usr.Mobile = mobile
    94  		usr.Gender = gender
    95  		usr.Role = -1000
    96  
    97  		if row, err := models.PutUser(userid, usr); err != nil && row <= 0 {
    98  
    99  			self.Flash.Error("用户注册信息写入数据库时发生错误!")
   100  			return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
   101  
   102  		} else {
   103  
   104  			if usrinfo, err := models.GetUser(userid); err == nil && usrinfo != nil {
   105  				self.Set("usr", usrinfo)
   106  				self.Flash.Success("用户账号保存成功!")
   107  				return self.Redirect("/root/update/administrator/" + strconv.FormatInt(userid, 10) + "/")
   108  
   109  			} else {
   110  
   111  				self.Flash.Error("获取用户数据出错!")
   112  				return self.Redirect("/root/read/administrator/")
   113  
   114  			}
   115  
   116  		}
   117  	} else {
   118  
   119  		self.Flash.Error("用户不存在!")
   120  		return self.Redirect("/root/read/administrator/")
   121  	}
   122  }