Merged revisions 143736 via svnmerge from
authorSean Bright <sean@malleable.com>
Sat, 20 Sep 2008 00:52:20 +0000 (00:52 +0000)
committerSean Bright <sean@malleable.com>
Sat, 20 Sep 2008 00:52:20 +0000 (00:52 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r143736 | seanbright | 2008-09-19 20:50:10 -0400 (Fri, 19 Sep 2008) | 9 lines

Make vmail.cgi work with mailboxes defined in users.conf, too.

(closes issue #13187)
Reported by: netvoice
Patches:
      20080911__bug13187.diff.txt uploaded by Corydon76 (license 14)
      (Slightly modified to take alchamist's comments on mantis into account)
Tested by: msales, alchamist, seanbright

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@143737 65c4cc65-6c06-0410-ace0-fbb531ad65f3

contrib/scripts/vmail.cgi

index 95bb9bb..de51a4d 100644 (file)
@@ -193,7 +193,40 @@ sub check_login($$)
                }
        }
        close(VMAIL);
                }
        }
        close(VMAIL);
-       return ("", $category);
+       return check_login_users();
+}
+
+sub check_login_users {
+       my ($mbox, $context) = split(/\@/, param('mailbox'));
+       my $pass = param('password');
+       my ($found, $fullname) = (0, "");
+       open VMAIL, "</etc/asterisk/users.conf";
+       while (<VMAIL>) {
+               chomp;
+               if (m/\[(.*)\]/) {
+                       if ($1 eq $mbox) {
+                               $found = 1;
+                       } elsif ($found == 2) {
+                               close VMAIL;
+                               return (($fullname ? $fullname : "Extension $mbox in $context"), $context);
+                       } else {
+                               $found = 0;
+                       }
+               } elsif ($found) {
+                       my ($var, $value) = split /\s*=\s*/, $_, 2;
+                       if ($var eq 'vmsecret' and $value eq $pass) {
+                               $found = 2;
+                       } elsif ($var eq 'fullname') {
+                               $fullname = $value;
+                               if ($found == 2) {
+                                       close VMAIL;
+                                       return ($fullname, $context);
+                               }
+                       }
+               }
+       }
+       close VMAIL;
+       return ("", "");
 }
 
 sub validmailbox($$$$)
 }
 
 sub validmailbox($$$$)