use of org.traccar.model.User in project traccar by tananaev.
the class SessionResource method add.
@PermitAll
@POST
public User add(@FormParam("email") String email, @FormParam("password") String password) throws SQLException {
User user = Context.getPermissionsManager().login(email, password);
if (user != null) {
request.getSession().setAttribute(USER_ID_KEY, user.getId());
LogAction.login(user.getId());
return user;
} else {
throw new WebApplicationException(Response.status(Response.Status.UNAUTHORIZED).build());
}
}
use of org.traccar.model.User in project traccar by tananaev.
the class NotificationMail method sendMailSync.
public static void sendMailSync(long userId, Event event, Position position) throws MessagingException {
User user = Context.getPermissionsManager().getUser(userId);
Properties properties = null;
if (!Context.getConfig().getBoolean("mail.smtp.ignoreUserConfig")) {
properties = getProperties(new PropertiesProvider(user));
}
if (properties == null || !properties.containsKey("mail.smtp.host")) {
properties = getProperties(new PropertiesProvider(Context.getConfig()));
}
if (!properties.containsKey("mail.smtp.host")) {
Log.warning("No SMTP configuration found");
return;
}
Session session = Session.getInstance(properties);
MimeMessage message = new MimeMessage(session);
String from = properties.getProperty("mail.smtp.from");
if (from != null) {
message.setFrom(new InternetAddress(from));
}
message.addRecipient(Message.RecipientType.TO, new InternetAddress(user.getEmail()));
MailMessage mailMessage = NotificationFormatter.formatMailMessage(userId, event, position);
message.setSubject(mailMessage.getSubject());
message.setSentDate(new Date());
message.setContent(mailMessage.getBody(), "text/html; charset=utf-8");
Transport transport = session.getTransport();
try {
Context.getStatisticsManager().registerMail();
transport.connect(properties.getProperty("mail.smtp.host"), properties.getProperty("mail.smtp.username"), properties.getProperty("mail.smtp.password"));
transport.sendMessage(message, message.getAllRecipients());
} finally {
transport.close();
}
}
use of org.traccar.model.User in project traccar by tananaev.
the class DataManager method login.
public User login(String email, String password) throws SQLException {
User user = QueryBuilder.create(dataSource, getQuery("database.loginUser")).setString("email", email.trim()).executeQuerySingle(User.class);
LdapProvider ldapProvider = Context.getLdapProvider();
if (user != null) {
if (ldapProvider != null && user.getLogin() != null && ldapProvider.login(user.getLogin(), password) || !forceLdap && user.isPasswordValid(password)) {
return user;
}
} else {
if (ldapProvider != null && ldapProvider.login(email, password)) {
user = ldapProvider.getUser(email);
Context.getUsersManager().addItem(user);
return user;
}
}
return null;
}
use of org.traccar.model.User in project traccar by tananaev.
the class UsersManager method removeCachedItem.
@Override
protected void removeCachedItem(long userId) {
User cachedUser = getById(userId);
if (cachedUser != null) {
String userToken = cachedUser.getToken();
super.removeCachedItem(userId);
if (userToken != null) {
usersTokens.remove(userToken);
}
}
}
use of org.traccar.model.User in project traccar by tananaev.
the class NotificationSms method sendSmsSync.
public static void sendSmsSync(long userId, Event event, Position position) throws RecoverablePduException, UnrecoverablePduException, SmppTimeoutException, SmppChannelException, InterruptedException {
User user = Context.getPermissionsManager().getUser(userId);
if (Context.getSmppManager() != null && user.getPhone() != null) {
Context.getStatisticsManager().registerSms();
Context.getSmppManager().sendMessageSync(user.getPhone(), NotificationFormatter.formatSmsMessage(userId, event, position), false);
}
}
Aggregations