當前位置: 首頁>>代碼示例>>Golang>>正文


Golang interfaces.User類代碼示例

本文整理匯總了Golang中github.com/opesun/nocrud/frame/interfaces.User的典型用法代碼示例。如果您正苦於以下問題:Golang User類的具體用法?Golang User怎麽用?Golang User使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了User類的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: userChecks

func (h *HighLev) userChecks(user iface.User) error {
	verbSpec, ok := jsonp.GetM(h.nouns, fmt.Sprint("%v.verbs.%v.userCrit", h.desc.Sentence.Noun, h.desc.Sentence.Verb))
	if ok {
		_, err := sanitize.Fast(verbSpec, user.Data())
		return err
	}
	nounSpec, ok := jsonp.GetM(h.nouns, fmt.Sprintf("%v.userCrit", h.desc.Sentence.Noun))
	if !ok {
		return nil
	}
	_, err := sanitize.Fast(nounSpec, user.Data())
	return err
}
開發者ID:crufter,項目名稱:nocrud,代碼行數:13,代碼來源:highlev.go

示例2: Run

func (h *HighLev) Run(db iface.Db, usr iface.User, defminlev int) ([]interface{}, error) {
	desc := h.desc
	levi, ok := jsonp.Get(h.nouns, fmt.Sprintf("%v.verbs.%v.level", desc.Sentence.Noun, desc.Sentence.Verb))
	if !ok {
		levi = defminlev
	}
	lev, _ := numcon.Int(levi)
	if usr.Level() < lev {
		return nil, fmt.Errorf("Not allowed.")
	}
	filterCreator := func(c string, input map[string]interface{}) (iface.Filter, error) {
		return db.NewFilter(c, input)
	}
	inp, data, err := desc.CreateInputs(filterCreator)
	if err != nil {
		return nil, err
	}
	if data != nil {
		if desc.Sentence.Noun != "options" {
			data, err = h.validate(desc.Sentence.Noun, desc.Sentence.Verb, data)
			if err != nil {
				return nil, err
			}
		}
		inp = append(inp, data)
	}
	module := h.hooks.Module(desc.VerbLocation)
	if !module.Exists() {
		return nil, fmt.Errorf("Unkown module.")
	}
	ins := module.Instance()
	var ret []interface{}
	ret_rec := func(i ...interface{}) {
		ret = i
	}
	err = ins.Method(desc.Sentence.Verb).Call(ret_rec, inp...)
	if err != nil {
		return nil, err
	}
	return ret, nil
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:41,代碼來源:highlev.go

示例3: Run

func (h *HighLev) Run(db iface.Db, usr iface.User, defminlev int) ([]interface{}, error) {
	desc := h.desc
	// Authentication.
	levi, ok := jsonp.Get(h.nouns, fmt.Sprintf("%v.verbs.%v.level", desc.Sentence.Noun, desc.Sentence.Verb))
	if !ok {
		levi = defminlev
	}
	lev, _ := numcon.Int(levi)
	if usr.Level() < lev {
		return nil, fmt.Errorf("Not allowed.")
	}
	err := h.userChecks(usr)
	if err != nil {
		return nil, err
	}
	filterCreator := func(c string, input map[string]interface{}) (iface.Filter, error) {
		return db.NewFilter(c, input)
	}
	inp, data, err := desc.CreateInputs(filterCreator)
	if err != nil {
		return nil, err
	}
	ownLev, own := h.ownLev()
	if len(inp) > 0 {
		if f, ok := inp[0].(iface.Filter); ok {
			// This hook allows you to modify a filter before a verb accesses it.
			h.hooks.Select("TopModFilter").Fire(f)
			h.hooks.Select(f.Subject() + "TopModFilter").Fire(f)
		}
		if own && lev <= ownLev {
			if f, ok := inp[0].(iface.Filter); ok {
				f.AddQuery(map[string]interface{}{
					"createdBy": usr.Id(),
				})
			}
		}
	}
	if data != nil {
		if desc.Sentence.Noun != "options" {
			data, err = h.validate(desc.Sentence.Noun, desc.Sentence.Verb, data)
			if err != nil {
				return nil, err
			}
		}
		inp = append(inp, data)
	}
	module := h.hooks.Module(desc.VerbLocation)
	if !module.Exists() {
		return nil, fmt.Errorf("Unkown module.")
	}
	ins := module.Instance()
	var ret []interface{}
	ret_rec := func(i ...interface{}) {
		ret = i
	}
	err = ins.Method(desc.Sentence.Verb).Call(ret_rec, inp...)
	if err != nil {
		return nil, err
	}
	return ret, nil
}
開發者ID:crufter,項目名稱:nocrud,代碼行數:61,代碼來源:highlev.go

示例4: OnlyAdmin

func OnlyAdmin(u iface.User) {
	if u.Level() < 300 {
		panic("Only an admin can do this operation.")
	}
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:5,代碼來源:scut.go

示例5: NotAdmin

func NotAdmin(user iface.User) bool {
	return user.Level() < 300
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:3,代碼來源:scut.go

示例6: IsStranger

func IsStranger(user iface.User) bool {
	return user.Level() == 0
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:3,代碼來源:scut.go

示例7: IsRegistered

func IsRegistered(user iface.User) bool {
	return user.Level() >= 100
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:3,代碼來源:scut.go

示例8: IsModerator

func IsModerator(user iface.User) bool {
	return user.Level() >= 200
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:3,代碼來源:scut.go

示例9: IsAdmin

func IsAdmin(user iface.User) bool {
	return user.Level() >= 300
}
開發者ID:Laller,項目名稱:nocrud,代碼行數:3,代碼來源:scut.go

示例10: isProfessional

func isProfessional(u iface.User) bool {
	_, ok := u.Data()["professional"]
	return ok
}
開發者ID:crufter,項目名稱:nocrud,代碼行數:4,代碼來源:meeting.go


注:本文中的github.com/opesun/nocrud/frame/interfaces.User類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。