Skip to content

Commit 2d8d2b2

Browse files
authored
Merge pull request #98 from kenjones-cisco/task/lint-fixes
Task: Resolve lint errors
2 parents 25ad5e6 + 437f266 commit 2d8d2b2

21 files changed

+212
-177
lines changed

config/config.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,15 @@ import (
2727
)
2828

2929
var (
30-
DEFAULT_SECTION = "default"
31-
DEFAULT_COMMENT = []byte{'#'}
30+
// DEFAULT_SECTION specifies the name of a section if no name provided
31+
DEFAULT_SECTION = "default"
32+
// DEFAULT_COMMENT defines what character(s) indicate a comment `#`
33+
DEFAULT_COMMENT = []byte{'#'}
34+
// DEFAULT_COMMENT_SEM defines what alternate character(s) indicate a comment `;`
3235
DEFAULT_COMMENT_SEM = []byte{';'}
3336
)
3437

38+
// ConfigInterface defines the behavior of a Config implemenation
3539
type ConfigInterface interface {
3640
String(key string) string
3741
Strings(key string) []string
@@ -42,6 +46,7 @@ type ConfigInterface interface {
4246
Set(key string, value string) error
4347
}
4448

49+
// Config represents an implementation of the ConfigInterface
4550
type Config struct {
4651
// map is not safe.
4752
sync.RWMutex
@@ -133,26 +138,32 @@ func (c *Config) parseBuffer(buf *bufio.Reader) (err error) {
133138
return nil
134139
}
135140

141+
// Bool lookups up the value using the provided key and converts the value to a bool
136142
func (c *Config) Bool(key string) (bool, error) {
137143
return strconv.ParseBool(c.get(key))
138144
}
139145

146+
// Int lookups up the value using the provided key and converts the value to a int
140147
func (c *Config) Int(key string) (int, error) {
141148
return strconv.Atoi(c.get(key))
142149
}
143150

151+
// Int64 lookups up the value using the provided key and converts the value to a int64
144152
func (c *Config) Int64(key string) (int64, error) {
145153
return strconv.ParseInt(c.get(key), 10, 64)
146154
}
147155

156+
// Float64 lookups up the value using the provided key and converts the value to a float64
148157
func (c *Config) Float64(key string) (float64, error) {
149158
return strconv.ParseFloat(c.get(key), 64)
150159
}
151160

161+
// String lookups up the value using the provided key and converts the value to a string
152162
func (c *Config) String(key string) string {
153163
return c.get(key)
154164
}
155165

166+
// Strings lookups up the value using the provided key and converts the value to an array of string by splitting the string by comma
156167
func (c *Config) Strings(key string) []string {
157168
v := c.get(key)
158169
if v == "" {
@@ -161,6 +172,7 @@ func (c *Config) Strings(key string) []string {
161172
return strings.Split(v, ",")
162173
}
163174

175+
// Set sets the value for the specific key in the Config
164176
func (c *Config) Set(key string, value string) error {
165177
c.Lock()
166178
defer c.Unlock()

config/config_test.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ import (
1919
)
2020

2121
func TestGet(t *testing.T) {
22-
config, err := NewConfig("testdata/testini.ini")
23-
if err != nil {
24-
t.Errorf("Configuration file loading failed, err:%v", err.Error())
25-
t.Fatalf("err: %v", err)
22+
config, cerr := NewConfig("testdata/testini.ini")
23+
if cerr != nil {
24+
t.Errorf("Configuration file loading failed, err:%v", cerr.Error())
25+
t.Fatalf("err: %v", cerr)
2626
}
2727

2828
// default::key test
29-
if v, err := config.Bool("debug"); err != nil || v != true {
29+
if v, err := config.Bool("debug"); err != nil || !v {
3030
t.Errorf("Get failure: expected different value for debug (expected: [%#v] got: [%#v])", true, v)
3131
t.Fatalf("err: %v", err)
3232
}
@@ -58,19 +58,16 @@ func TestGet(t *testing.T) {
5858
// other::key test
5959
if v := config.String("other::name"); v != "ATC自动化测试^-^&($#……#" {
6060
t.Errorf("Get failure: expected different value for other::name (expected: [%#v] got: [%#v])", "ATC自动化测试^-^&($#……#", v)
61-
t.Fatalf("err: %v", err)
6261
}
6362

6463
if v := config.String("other::key1"); v != "test key" {
6564
t.Errorf("Get failure: expected different value for other::key1 (expected: [%#v] got: [%#v])", "test key", v)
66-
t.Fatalf("err: %v", err)
6765
}
6866

6967
config.Set("other::key1", "new test key")
7068

7169
if v := config.String("other::key1"); v != "new test key" {
7270
t.Errorf("Get failure: expected different value for other::key1 (expected: [%#v] got: [%#v])", "new test key", v)
73-
t.Fatalf("err: %v", err)
7471
}
7572

7673
config.Set("other::key1", "test key")

enforcer.go

Lines changed: 58 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"fmt"
2020

2121
"github.com/Knetic/govaluate"
22+
2223
"github.com/casbin/casbin/effect"
2324
"github.com/casbin/casbin/model"
2425
"github.com/casbin/casbin/persist"
@@ -124,6 +125,7 @@ func (e *Enforcer) InitWithModelAndAdapter(m model.Model, adapter persist.Adapte
124125
e.initialize()
125126

126127
if e.adapter != nil {
128+
// error intentionally ignored
127129
e.LoadPolicy()
128130
}
129131
}
@@ -184,6 +186,7 @@ func (e *Enforcer) SetAdapter(adapter persist.Adapter) {
184186
// SetWatcher sets the current watcher.
185187
func (e *Enforcer) SetWatcher(watcher persist.Watcher) {
186188
e.watcher = watcher
189+
// error intentionally ignored
187190
watcher.SetUpdateCallback(func(string) { e.LoadPolicy() })
188191
}
189192

@@ -205,8 +208,7 @@ func (e *Enforcer) ClearPolicy() {
205208
// LoadPolicy reloads the policy from file/database.
206209
func (e *Enforcer) LoadPolicy() error {
207210
e.model.ClearPolicy()
208-
err := e.adapter.LoadPolicy(e.model)
209-
if err != nil {
211+
if err := e.adapter.LoadPolicy(e.model); err != nil {
210212
return err
211213
}
212214

@@ -230,8 +232,7 @@ func (e *Enforcer) LoadFilteredPolicy(filter interface{}) error {
230232
default:
231233
return errors.New("filtered policies are not supported by this adapter")
232234
}
233-
err := filteredAdapter.LoadFilteredPolicy(e.model, filter)
234-
if err != nil {
235+
if err := filteredAdapter.LoadFilteredPolicy(e.model, filter); err != nil {
235236
return err
236237
}
237238

@@ -256,13 +257,13 @@ func (e *Enforcer) SavePolicy() error {
256257
if e.IsFiltered() {
257258
return errors.New("cannot save a filtered policy")
258259
}
259-
err := e.adapter.SavePolicy(e.model)
260-
if err == nil {
261-
if e.watcher != nil {
262-
e.watcher.Update()
263-
}
260+
if err := e.adapter.SavePolicy(e.model); err != nil {
261+
return err
262+
}
263+
if e.watcher != nil {
264+
return e.watcher.Update()
264265
}
265-
return err
266+
return nil
266267
}
267268

268269
// EnableEnforce changes the enforcing state of Casbin, when Casbin is disabled, all access will be allowed by the Enforce() function.
@@ -287,6 +288,7 @@ func (e *Enforcer) EnableAutoBuildRoleLinks(autoBuildRoleLinks bool) {
287288

288289
// BuildRoleLinks manually rebuild the role inheritance relations.
289290
func (e *Enforcer) BuildRoleLinks() {
291+
// error intentionally ignored
290292
e.rm.Clear()
291293
e.model.BuildRoleLinks(e.rm)
292294
}
@@ -334,39 +336,41 @@ func (e *Enforcer) Enforce(rvals ...interface{}) bool {
334336
if err != nil {
335337
policyEffects[i] = effect.Indeterminate
336338
panic(err)
337-
} else {
338-
switch result.(type) {
339-
case bool:
340-
if !result.(bool) {
341-
policyEffects[i] = effect.Indeterminate
342-
continue
343-
}
344-
case float64:
345-
if result.(float64) == 0 {
346-
policyEffects[i] = effect.Indeterminate
347-
continue
348-
} else {
349-
matcherResults[i] = result.(float64)
350-
}
351-
default:
352-
panic(errors.New("matcher result should be bool, int or float"))
339+
}
340+
341+
switch result.(type) {
342+
case bool:
343+
if !result.(bool) {
344+
policyEffects[i] = effect.Indeterminate
345+
continue
353346
}
354-
if eft, ok := parameters["p_eft"]; ok {
355-
if eft == "allow" {
356-
policyEffects[i] = effect.Allow
357-
} else if eft == "deny" {
358-
policyEffects[i] = effect.Deny
359-
} else {
360-
policyEffects[i] = effect.Indeterminate
361-
}
347+
case float64:
348+
if result.(float64) == 0 {
349+
policyEffects[i] = effect.Indeterminate
350+
continue
362351
} else {
363-
policyEffects[i] = effect.Allow
352+
matcherResults[i] = result.(float64)
364353
}
354+
default:
355+
panic(errors.New("matcher result should be bool, int or float"))
356+
}
365357

366-
if e.model["e"]["e"].Value == "priority(p_eft) || deny" {
367-
break
358+
if eft, ok := parameters["p_eft"]; ok {
359+
if eft == "allow" {
360+
policyEffects[i] = effect.Allow
361+
} else if eft == "deny" {
362+
policyEffects[i] = effect.Deny
363+
} else {
364+
policyEffects[i] = effect.Indeterminate
368365
}
366+
} else {
367+
policyEffects[i] = effect.Allow
368+
}
369+
370+
if e.model["e"]["e"].Value == "priority(p_eft) || deny" {
371+
break
369372
}
373+
370374
}
371375
} else {
372376
policyEffects = make([]effect.Effect, 1)
@@ -386,12 +390,12 @@ func (e *Enforcer) Enforce(rvals ...interface{}) bool {
386390
if err != nil {
387391
policyEffects[0] = effect.Indeterminate
388392
panic(err)
393+
}
394+
395+
if result.(bool) {
396+
policyEffects[0] = effect.Allow
389397
} else {
390-
if result.(bool) {
391-
policyEffects[0] = effect.Allow
392-
} else {
393-
policyEffects[0] = effect.Indeterminate
394-
}
398+
policyEffects[0] = effect.Indeterminate
395399
}
396400
}
397401

@@ -402,16 +406,20 @@ func (e *Enforcer) Enforce(rvals ...interface{}) bool {
402406
panic(err)
403407
}
404408

405-
reqStr := "Request: "
406-
for i, rval := range rvals {
407-
if i != len(rvals)-1 {
408-
reqStr += fmt.Sprintf("%v, ", rval)
409-
} else {
410-
reqStr += fmt.Sprintf("%v", rval)
409+
// only generate the request --> result string if the message
410+
// is going to be logged.
411+
if util.EnableLog {
412+
reqStr := "Request: "
413+
for i, rval := range rvals {
414+
if i != len(rvals)-1 {
415+
reqStr += fmt.Sprintf("%v, ", rval)
416+
} else {
417+
reqStr += fmt.Sprintf("%v", rval)
418+
}
411419
}
420+
reqStr += fmt.Sprintf(" ---> %t", result)
421+
util.LogPrint(reqStr)
412422
}
413-
reqStr += fmt.Sprintf(" ---> %t", result)
414-
util.LogPrint(reqStr)
415423

416424
return result
417425
}

enforcer_safe.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,14 @@
1515
package casbin
1616

1717
import (
18-
"errors"
1918
"fmt"
2019
)
2120

2221
// NewEnforcerSafe calls NewEnforcer in a safe way, returns error instead of causing panic.
2322
func NewEnforcerSafe(params ...interface{}) (e *Enforcer, err error) {
2423
defer func() {
2524
if r := recover(); r != nil {
26-
err = errors.New(fmt.Sprintf("%v", r))
25+
err = fmt.Errorf("%v", r)
2726
e = nil
2827
}
2928
}()
@@ -37,7 +36,7 @@ func NewEnforcerSafe(params ...interface{}) (e *Enforcer, err error) {
3736
func (e *Enforcer) LoadModelSafe() (err error) {
3837
defer func() {
3938
if r := recover(); r != nil {
40-
err = errors.New(fmt.Sprintf("%v", r))
39+
err = fmt.Errorf("%v", r)
4140
}
4241
}()
4342

@@ -50,7 +49,7 @@ func (e *Enforcer) LoadModelSafe() (err error) {
5049
func (e *Enforcer) EnforceSafe(rvals ...interface{}) (result bool, err error) {
5150
defer func() {
5251
if r := recover(); r != nil {
53-
err = errors.New(fmt.Sprintf("%v", r))
52+
err = fmt.Errorf("%v", r)
5453
result = false
5554
}
5655
}()
@@ -60,10 +59,11 @@ func (e *Enforcer) EnforceSafe(rvals ...interface{}) (result bool, err error) {
6059
return
6160
}
6261

62+
// AddPolicySafe calls AddPolicy in a safe way, returns error instead of causing panic.
6363
func (e *Enforcer) AddPolicySafe(params ...interface{}) (result bool, err error) {
6464
defer func() {
6565
if r := recover(); r != nil {
66-
err = errors.New(fmt.Sprintf("%v", r))
66+
err = fmt.Errorf("%v", r)
6767
result = false
6868
}
6969
}()
@@ -73,10 +73,11 @@ func (e *Enforcer) AddPolicySafe(params ...interface{}) (result bool, err error)
7373
return
7474
}
7575

76+
// RemovePolicySafe calls RemovePolicy in a safe way, returns error instead of causing panic.
7677
func (e *Enforcer) RemovePolicySafe(params ...interface{}) (result bool, err error) {
7778
defer func() {
7879
if r := recover(); r != nil {
79-
err = errors.New(fmt.Sprintf("%v", r))
80+
err = fmt.Errorf("%v", r)
8081
result = false
8182
}
8283
}()
@@ -86,15 +87,16 @@ func (e *Enforcer) RemovePolicySafe(params ...interface{}) (result bool, err err
8687
return
8788
}
8889

90+
// RemoveFilteredPolicySafe calls RemoveFilteredPolicy in a safe way, returns error instead of causing panic.
8991
func (e *Enforcer) RemoveFilteredPolicySafe(fieldIndex int, fieldValues ...string) (result bool, err error) {
9092
defer func() {
9193
if r := recover(); r != nil {
92-
err = errors.New(fmt.Sprintf("%v", r))
94+
err = fmt.Errorf("%v", r)
9395
result = false
9496
}
9597
}()
9698

9799
result = e.RemoveFilteredNamedPolicy("p", fieldIndex, fieldValues...)
98100
err = nil
99101
return
100-
}
102+
}

0 commit comments

Comments
 (0)