Skip to content

Commit d8f6b11

Browse files
Merge pull request #49 from macadmins/authdb_rules
Add rules to the output
2 parents ba24b0d + 2d8e261 commit d8f6b11

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

tables/authdb/authdb.go

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ type AuthDBRight struct {
2323
Mechanisms []string `json:"mechanisms,omitempty" plist:"mechanisms,omitempty"`
2424
Modified float64 `json:"modified" plist:"modified"`
2525
RequireAppleSigned bool `json:"require-apple-signed,omitempty" plist:"require-apple-signed,omitempty"`
26+
Rule []string `json:"rule,omitempty" plist:"rule,omitempty"`
2627
SessionOwner bool `json:"session-owner" plist:"session-owner"`
2728
Shared bool `json:"shared" plist:"shared"`
2829
Timeout int `json:"timeout" plist:"timeout"`
@@ -42,6 +43,7 @@ func AuthDBColumns() []table.ColumnDefinition {
4243
table.TextColumn("mechanisms"),
4344
table.TextColumn("modified"),
4445
table.TextColumn("require_apple_signed"),
46+
table.TextColumn("rule"),
4547
table.TextColumn("session_owner"),
4648
table.TextColumn("shared"),
4749
table.TextColumn("timeout"),
@@ -117,6 +119,7 @@ func buildOutput(rights []AuthDBRight) []map[string]string {
117119
"mechanisms": strings.Join(right.Mechanisms, ","),
118120
"modified": fmt.Sprintf("%f", right.Modified),
119121
"require_apple_signed": utils.BoolToString(right.RequireAppleSigned),
122+
"rule": strings.Join(right.Rule, ","),
120123
"session_owner": utils.BoolToString(right.SessionOwner),
121124
"shared": utils.BoolToString(right.Shared),
122125
"timeout": strconv.Itoa(right.Timeout),

tables/authdb/authdb_test.go

+41
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ func TestAuthDBColumns(t *testing.T) {
117117
table.TextColumn("mechanisms"),
118118
table.TextColumn("modified"),
119119
table.TextColumn("require_apple_signed"),
120+
table.TextColumn("rule"),
120121
table.TextColumn("session_owner"),
121122
table.TextColumn("shared"),
122123
table.TextColumn("timeout"),
@@ -279,6 +280,7 @@ func TestBuildOutput(t *testing.T) {
279280
"group": "group",
280281
"mechanisms": "mechanism1,mechanism2",
281282
"modified": "2.000000",
283+
"rule": "",
282284
"require_apple_signed": "true",
283285
"session_owner": "false",
284286
"shared": "true",
@@ -292,3 +294,42 @@ func TestBuildOutput(t *testing.T) {
292294

293295
assert.Equal(t, expectedOutput, actualOutput, "Expected output to match")
294296
}
297+
298+
func TestGetRuleWithRules(t *testing.T) {
299+
runner := utils.MockCmdRunner{
300+
Output: `<?xml version="1.0" encoding="UTF-8"?>
301+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
302+
<plist version="1.0">
303+
<dict>
304+
<key>class</key>
305+
<string>rule</string>
306+
<key>created</key>
307+
<real>730353220.36463201</real>
308+
<key>modified</key>
309+
<real>738604357.04363894</real>
310+
<key>rule</key>
311+
<array>
312+
<string>allow</string>
313+
</array>
314+
<key>version</key>
315+
<integer>0</integer>
316+
</dict>
317+
</plist>`,
318+
Err: nil,
319+
}
320+
321+
expected := AuthDBRight{
322+
Name: "system.preferences.datetime",
323+
Class: "rule",
324+
Created: 730353220.36463201,
325+
Modified: 738604357.04363894,
326+
Rule: []string{"allow"},
327+
Version: 0,
328+
}
329+
330+
r := utils.Runner{}
331+
r.Runner = runner
332+
out, err := getRule(r, "system.preferences.datetime")
333+
assert.NoError(t, err)
334+
assert.Equal(t, expected, out)
335+
}

0 commit comments

Comments
 (0)