aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configs/users.conf.sample5
-rw-r--r--main/manager.c7
2 files changed, 10 insertions, 2 deletions
diff --git a/configs/users.conf.sample b/configs/users.conf.sample
index f88adee9c..2a816d7e4 100644
--- a/configs/users.conf.sample
+++ b/configs/users.conf.sample
@@ -46,6 +46,11 @@ hasiax = yes
;
hasmanager = no
;
+; Set permissions for manager entry (see manager.conf.sample for documentation)
+; (defaults to *all* permissions)
+;managerread = system,call,log,verbose,command,agent,user,config
+;managerwrite = system,call,log,verbose,command,agent,user,config
+;
; Remaining options are not specific to users.conf entries but are general.
;
callwaiting = yes
diff --git a/main/manager.c b/main/manager.c
index 332d2c591..7e637ff4e 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -1037,9 +1037,12 @@ static int authenticate(struct mansession *s, const struct message *m)
ast_log(LOG_WARNING, "Invalid writetimeout value '%s' at line %d\n", v->value, v->lineno);
else
s->writetimeout = val;
- } else if (!strcasecmp(v->name, "hasmanager")) {
+ } else if (!strcasecmp(v->name, "hasmanager"))
hasmanager = ast_true(v->value);
- }
+ else if (!strcasecmp(v->name, "managerread"))
+ readperm = get_perm(v->value);
+ else if (!strcasecmp(v->name, "managerwrite"))
+ writeperm = get_perm(v->value);
}
ast_config_destroy(cfg);
if (!hasmanager) {