casbin / mongodb-adapter

MongoDB adapter for Casbin

Home Page:https://github.com/casbin/casbin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

skip the fieldValue to keep the same logic with casbin/model/policy:line117

Hellobigxu opened this issue · comments

func (a *adapter) RemoveFilteredPolicy(sec string, ptype string, fieldIndex int, fieldValues ...string) error {
	selector := make(map[string]interface{})
	selector["ptype"] = ptype

	if fieldIndex <= 0 && 0 < fieldIndex+len(fieldValues) {
		if len(fieldValues[0-fieldIndex]) !=0 {
			selector["v0"] = fieldValues[0-fieldIndex]
		}
	}
	if fieldIndex <= 1 && 1 < fieldIndex+len(fieldValues) {
		if len(fieldValues[1-fieldIndex]) !=0 {
			selector["v1"] = fieldValues[1-fieldIndex]
		}
	}
	if fieldIndex <= 2 && 2 < fieldIndex+len(fieldValues) {
		if len(fieldValues[2-fieldIndex]) !=0 {
			selector["v2"] = fieldValues[2-fieldIndex]
		}
	}
	if fieldIndex <= 3 && 3 < fieldIndex+len(fieldValues) {
		if len(fieldValues[3-fieldIndex]) !=0 {
			selector["v3"] = fieldValues[3-fieldIndex]
		}
	}
	if fieldIndex <= 4 && 4 < fieldIndex+len(fieldValues) {
		if len(fieldValues[4-fieldIndex]) !=0 {
			selector["v4"] = fieldValues[4-fieldIndex]
		}
	}
	if fieldIndex <= 5 && 5 < fieldIndex+len(fieldValues) {
		if len(fieldValues[5-fieldIndex]) !=0 {
			selector["v5"] = fieldValues[5-fieldIndex]
		}
	}

	_, err := a.collection.RemoveAll(selector)
	return err
}

Sounds good. Please make a PR about it, and write some tests to verify it.

Please do not use commit messages like Update adapter.go, just say what is changed. And if your 2nd commit is just to fix the 1st commit's bug, just squash the commits.