package common

import (
	"dbweb/core"
	"strings"
)

type SetDept struct{}

func init() {
	core.RegisterFun("setdept", new(SetDept), "_layout/normal")
}
func (s *SetDept) Get(p *core.ElementHandleArgs) {
	p.More["Code"] = p.User.Dept.Code
	p.HTML()
}
func (s *SetDept) Post(p *core.ElementHandleArgs) {

	code := p.Req.PostFormValue("code")
	if !strings.HasPrefix(code, p.User.RootDept) {
		p.More["Error"] = "必须以" + p.User.RootDept + "开头"
		p.More["Code"] = code
		p.HTML()
		return
	}

	u := p.User
	hasError := false
	func() {
		defer func() {
			if r := recover(); r != nil {
				hasError = true
			}
		}()
		u.SwitchDept(p.DB, code)
	}()
	if hasError {
		p.More["Error"] = "无效的代码，设置处理地失败"
		p.More["Code"] = code
		p.HTML()
		return
	}
	p.LSession.Set("$user", u)
	p.Redirect(p.Req.URL.Query().Get("next"))

}
