grim/hgkeeper
Clone
Summary
Browse
Changes
Graph
rework the ssh keyloading to *NOT* be a method
2019-09-08, Gary Kramlich
7dd7f9cf8e7b
rework the ssh keyloading to *NOT* be a method
package
access
type
Acl
struct
{
Init
[]
string
`yaml:"init"`
Read
[]
string
`yaml:"read"`
Write
[]
string
`yaml:"write"`
}
func
(
a
*
Acl
)
Users
()
[]
string
{
users
:=
map
[
string
]
bool
{}
for
_
,
name
:=
range
a
.
Init
{
users
[
name
]
=
true
}
for
_
,
name
:=
range
a
.
Read
{
users
[
name
]
=
true
}
for
_
,
name
:=
range
a
.
Write
{
users
[
name
]
=
true
}
slice
:=
make
([]
string
,
len
(
users
))
idx
:=
0
for
user
,
_
:=
range
users
{
slice
[
idx
]
=
user
idx
++
}
return
slice
}
func
(
a
*
Acl
)
CanRead
(
username
string
)
bool
{
if
a
.
CanWrite
(
username
)
||
a
.
CanInit
(
username
)
{
return
true
}
for
_
,
user
:=
range
a
.
Read
{
if
user
==
username
{
return
true
}
}
return
false
}
func
(
a
*
Acl
)
CanWrite
(
username
string
)
bool
{
if
a
.
CanInit
(
username
)
{
return
true
}
for
_
,
user
:=
range
a
.
Write
{
if
user
==
username
{
return
true
}
}
return
false
}
func
(
a
*
Acl
)
CanInit
(
username
string
)
bool
{
for
_
,
user
:=
range
a
.
Init
{
if
user
==
username
{
return
true
}
}
return
false
}