net.kamhon.ieagle.function.user.dao.mysql.UserDetailsSqlDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for net.kamhon.ieagle.function.user.dao.mysql.UserDetailsSqlDaoImpl.java

Source

/*
 * Copyright 2012 Eng Kam Hon (kamhon@gmail.com)
 * 
 * Licensed 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 net.kamhon.ieagle.function.user.dao.mysql;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import net.kamhon.ieagle.FrameworkConst;
import net.kamhon.ieagle.aop.AppDetailsBaseAdvice;
import net.kamhon.ieagle.dao.AbstractJdbcDao;
import net.kamhon.ieagle.function.user.dao.UserDetailsSqlDao;
import net.kamhon.ieagle.function.user.vo.UserAccess;

import org.springframework.jdbc.core.RowMapper;

public class UserDetailsSqlDaoImpl extends AbstractJdbcDao implements UserDetailsSqlDao {
    public List<UserAccess> findUserAuthorizedAccess(String userId) {
        String sql = " select ra.access_code, " //
                + " sum(case when ra.create_mode then 1 else 0 end) create_mode, " //
                + " sum(case when ra.read_mode then 1 else 0 end) read_mode, " //
                + " sum(case when ra.update_mode then 1 else 0 end) update_mode, " //
                + " sum(case when ra.delete_mode then 1 else 0 end) delete_mode, " //
                + " sum(case when ra.admin_mode then 1 else 0 end) admin_mode " //
                + " from " //
                + " app_user u " //
                + " inner join app_user_in_role ur on u.user_id = ur.user_id " //
                + " inner join app_user_role r on r.role_id = ur.role_id " //
                + " inner join app_user_role_access ra on r.role_id = ra.role_id " //
                + " where u.user_id = ? and r.status=? " //
                + " group by ra.access_code " //
                + " order by ra.access_code ";

        List<Object> params = new ArrayList<Object>();
        params.add(userId);
        params.add(FrameworkConst.STATUS_APPROVED);

        List<UserAccess> userAccesses = (List<UserAccess>) query(sql, new RowMapper<UserAccess>() {
            public UserAccess mapRow(ResultSet rs, int arg1) throws SQLException {
                UserAccess userAccess = new UserAccess(false);
                userAccess.setAccessCode(rs.getString("ACCESS_CODE"));
                userAccess.setCreateMode(rs.getInt("CREATE_MODE") >= 1);
                userAccess.setReadMode(rs.getInt("READ_MODE") >= 1);
                userAccess.setUpdateMode(rs.getInt("UPDATE_MODE") >= 1);
                userAccess.setDeleteMode(rs.getInt("DELETE_MODE") >= 1);
                userAccess.setAdminMode(rs.getInt("ADMIN_MODE") >= 1);

                return userAccess;
            }
        }, params.toArray());

        return userAccesses;
    }

    @Override
    public void initDataUpdateAdminPrimaryKey() {
        String sql = "update app_user\n" //
                + "set user_id=?\n" //
                + "where user_id!=? and username='ADMIN'";
        update(sql, AppDetailsBaseAdvice.SYSTEM_USER_ID, AppDetailsBaseAdvice.SYSTEM_USER_ID);
    }
}