equal
deleted
inserted
replaced
80 set_user(basepw); |
80 set_user(basepw); |
81 return new user_data(basepw, "", ""); |
81 return new user_data(basepw, "", ""); |
82 } |
82 } |
83 else { |
83 else { |
84 set_user(basepw); |
84 set_user(basepw); |
85 vpwentry* vpw = domain->lookup(virtname, true); |
85 vpwentry* vpw = domain->lookup(virtname); |
86 if(!vpw || !vpw->mailbox) |
86 if(!vpw || !vpw->has_mailbox) |
87 fail_login("Invalid or unknown virtual user"); |
87 fail_login("Invalid or unknown virtual user"); |
88 if(!vpw->authenticate(password)) |
88 if(!vpw->authenticate(password)) |
89 fail_login("Invalid or incorrect password"); |
89 fail_login("Invalid or incorrect password"); |
90 if(vpw->expiry < (unsigned)time(0)) |
90 if(vpw->expiry < (unsigned)time(0)) |
91 fail_login("Account has expired"); |
91 fail_login("Account has expired"); |
92 vpw->export_env(); |
92 vpw->export_env(); |
93 return new user_data(basepw, vpw->mailbox, vpw->name); |
93 return new user_data(basepw, vpw->directory, vpw->name); |
94 } |
94 } |
95 } |
95 } |
96 |
96 |
97 user_data* authenticate(mystring name, mystring pass, mystring domain, |
97 user_data* authenticate(mystring name, mystring pass, mystring domain, |
98 bool virtual_only) |
98 bool virtual_only) |