// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, // software distributed under the License is distributed on an // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY // KIND, either express or implied. See the License for the // specific language governing permissions and limitations // under the License. package com.cloud.user.dao; import java.util.List; import org.springframework.stereotype.Component; import com.cloud.user.UserVO; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchCriteria; @Component @DB public class UserDaoImpl extends GenericDaoBase<UserVO, Long> implements UserDao { protected SearchBuilder<UserVO> UsernamePasswordSearch; protected SearchBuilder<UserVO> UsernameSearch; protected SearchBuilder<UserVO> UsernameLikeSearch; protected SearchBuilder<UserVO> UserIdSearch; protected SearchBuilder<UserVO> AccountIdSearch; protected SearchBuilder<UserVO> SecretKeySearch; protected SearchBuilder<UserVO> RegistrationTokenSearch; protected UserDaoImpl() { UsernameSearch = createSearchBuilder(); UsernameSearch.and("username", UsernameSearch.entity().getUsername(), SearchCriteria.Op.EQ); UsernameSearch.done(); UsernameLikeSearch = createSearchBuilder(); UsernameLikeSearch.and("username", UsernameLikeSearch.entity().getUsername(), SearchCriteria.Op.LIKE); UsernameLikeSearch.done(); AccountIdSearch = createSearchBuilder(); AccountIdSearch.and("account", AccountIdSearch.entity().getAccountId(), SearchCriteria.Op.EQ); AccountIdSearch.done(); UsernamePasswordSearch = createSearchBuilder(); UsernamePasswordSearch.and("username", UsernamePasswordSearch.entity().getUsername(), SearchCriteria.Op.EQ); UsernamePasswordSearch.and("password", UsernamePasswordSearch.entity().getPassword(), SearchCriteria.Op.EQ); UsernamePasswordSearch.done(); UserIdSearch = createSearchBuilder(); UserIdSearch.and("id", UserIdSearch.entity().getId(), SearchCriteria.Op.EQ); UserIdSearch.done(); SecretKeySearch = createSearchBuilder(); SecretKeySearch.and("secretKey", SecretKeySearch.entity().getSecretKey(), SearchCriteria.Op.EQ); SecretKeySearch.done(); RegistrationTokenSearch = createSearchBuilder(); RegistrationTokenSearch.and("registrationToken", RegistrationTokenSearch.entity().getRegistrationToken(), SearchCriteria.Op.EQ); RegistrationTokenSearch.done(); } @Override public UserVO getUser(String username, String password) { SearchCriteria<UserVO> sc = UsernamePasswordSearch.create(); sc.setParameters("username", username); sc.setParameters("password", password); return findOneBy(sc); } @Override public List<UserVO> listByAccount(long accountId) { SearchCriteria<UserVO> sc = AccountIdSearch.create(); sc.setParameters("account", accountId); return listBy(sc, null); } @Override public UserVO getUser(String username) { SearchCriteria<UserVO> sc = UsernameSearch.create(); sc.setParameters("username", username); return findOneBy(sc); } @Override public UserVO getUser(long userId) { SearchCriteria<UserVO> sc = UserIdSearch.create(); sc.setParameters("id", userId); return findOneBy(sc); } @Override public List<UserVO> findUsersLike(String username) { SearchCriteria<UserVO> sc = UsernameLikeSearch.create(); sc.setParameters("username", "%" + username + "%"); return listBy(sc); } @Override public UserVO findUserBySecretKey(String secretKey) { SearchCriteria<UserVO> sc = SecretKeySearch.create(); sc.setParameters("secretKey", secretKey); return findOneBy(sc); } @Override public UserVO findUserByRegistrationToken(String registrationToken) { SearchCriteria<UserVO> sc = RegistrationTokenSearch.create(); sc.setParameters("registrationToken", registrationToken); return findOneBy(sc); } @Override public List<UserVO> findUsersByName(String username) { SearchCriteria<UserVO> sc = UsernameSearch.create(); sc.setParameters("username", username); return listBy(sc); } }