Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
0f1b06aa
Commit
0f1b06aa
authored
Jan 31, 2019
by
antirez
Browse files
ACL: implement LIST and USERS subcommands.
parent
c7cd10df
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/acl.c
View file @
0f1b06aa
...
...
@@ -917,12 +917,6 @@ void aclCommand(client *c) {
}
}
addReply
(
c
,
shared
.
ok
);
}
else
if
(
!
strcasecmp
(
sub
,
"whoami"
))
{
if
(
c
->
user
!=
NULL
)
{
addReplyBulkCBuffer
(
c
,
c
->
user
->
name
,
sdslen
(
c
->
user
->
name
));
}
else
{
addReplyNull
(
c
);
}
}
else
if
(
!
strcasecmp
(
sub
,
"getuser"
)
&&
c
->
argc
==
3
)
{
user
*
u
=
ACLGetUserByName
(
c
->
argv
[
2
]
->
ptr
,
sdslen
(
c
->
argv
[
2
]
->
ptr
));
if
(
u
==
NULL
)
{
...
...
@@ -975,13 +969,42 @@ void aclCommand(client *c) {
addReplyBulkCBuffer
(
c
,
thispat
,
sdslen
(
thispat
));
}
}
}
else
if
(
!
strcasecmp
(
sub
,
"list"
)
||
!
strcasecmp
(
sub
,
"users"
))
{
int
justnames
=
!
strcasecmp
(
sub
,
"users"
);
addReplyArrayLen
(
c
,
raxSize
(
Users
));
raxIterator
ri
;
raxStart
(
&
ri
,
Users
);
raxSeek
(
&
ri
,
"^"
,
NULL
,
0
);
while
(
raxNext
(
&
ri
))
{
user
*
u
=
ri
.
data
;
if
(
justnames
)
{
addReplyBulkCBuffer
(
c
,
u
->
name
,
sdslen
(
u
->
name
));
}
else
{
/* Return information in the configuration file format. */
sds
config
=
sdsnew
(
"user "
);
config
=
sdscatsds
(
config
,
u
->
name
);
config
=
sdscatlen
(
config
,
" "
,
1
);
sds
descr
=
ACLDescribeUser
(
u
);
config
=
sdscatsds
(
config
,
descr
);
sdsfree
(
descr
);
addReplyBulkSds
(
c
,
config
);
}
}
raxStop
(
&
ri
);
}
else
if
(
!
strcasecmp
(
sub
,
"whoami"
))
{
if
(
c
->
user
!=
NULL
)
{
addReplyBulkCBuffer
(
c
,
c
->
user
->
name
,
sdslen
(
c
->
user
->
name
));
}
else
{
addReplyNull
(
c
);
}
}
else
if
(
!
strcasecmp
(
sub
,
"help"
))
{
const
char
*
help
[]
=
{
"LIST -- List all the registered users."
,
"LIST -- Show user details in config file format."
,
"USERS -- List all the registered usernames."
,
"SETUSER <username> [attribs ...] -- Create or modify a user."
,
"DELUSER <username> -- Delete a user."
,
"GETUSER <username> -- Get the user details."
,
"WHOAMI -- Return the current username."
,
"DELUSER <username> -- Delete a user."
,
"WHOAMI -- Return the current connection username."
,
NULL
};
addReplyHelp
(
c
,
help
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment