net.autosauler.ballance.server.model.UserList.java Source code

Java tutorial

Introduction

Here is the source code for net.autosauler.ballance.server.model.UserList.java

Source

/*******************************************************************************
 * Copyright 2011 Alex 'Ript' Malyshev <alexript@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.autosauler.ballance.server.model;

import net.autosauler.ballance.server.mongodb.Database;
import net.autosauler.ballance.shared.UserRole;

import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;

/**
 * The Class UserList.
 */
public class UserList {

    /** The Constant collectionname. */
    final private static String collectionname = "registredusers";

    /**
     * Creates the default records if no users in database.
     * 
     * @param db
     *            the db
     */
    public static void createDefaultRecords(DB db) {

        if (db != null) {
            DBCollection coll = db.getCollection(collectionname);
            if (coll.getCount() < 1) {
                UserRole defaultroles = new UserRole();
                defaultroles.setAdmin();

                User user = new User();
                user.setPassword("admin");
                user.setLogin("admin");
                user.setDomain("127.0.0.1");
                user.setUsername("Admin The Great");
                user.setUserrole(defaultroles);
                user.addNewUser();

                BasicDBObject i = new BasicDBObject();
                i.put("login", 1);
                i.put("domain", 1);

                coll.createIndex(i);

                i.put("istrash", 1);
                coll.createIndex(i);
            }
        }
    }

    /**
     * Dump.
     * 
     * @param domain
     *            the domain
     * @return the string
     */
    public static String dump(String domain) {
        StringBuilder sb = new StringBuilder();
        sb.append("<users>\n");
        Database.retain();
        DB db = Database.get(domain);
        if (db != null) {
            DBCollection coll = db.getCollection(collectionname);
            BasicDBObject query = new BasicDBObject();

            query.put("domain", domain);
            DBCursor cur = coll.find(query);
            while (cur.hasNext()) {
                DBObject myDoc = cur.next();
                User dbuser = new User(myDoc);
                sb.append(dbuser.dump());
            }

        }
        Database.release();
        sb.append("</users>\n");
        return sb.toString();
    }

    /**
     * Gets the users list.
     * 
     * @return the users
     */
    public static net.autosauler.ballance.shared.UserList getUsers(String domain) {
        return getUsers(domain, false);
    }

    /**
     * Gets the users list.
     * 
     * @param fromtrash
     *            the fromtrash
     * @return the users
     */
    private static net.autosauler.ballance.shared.UserList getUsers(String domain, boolean fromtrash) {
        net.autosauler.ballance.shared.UserList list = new net.autosauler.ballance.shared.UserList();

        Database.retain();
        DB db = Database.get(domain);
        if (db != null) {
            DBCollection coll = db.getCollection(collectionname);
            BasicDBObject query = new BasicDBObject();
            query.put("istrash", fromtrash);
            query.put("domain", domain);
            DBCursor cur = coll.find(query);
            while (cur.hasNext()) {
                DBObject myDoc = cur.next();
                User dbuser = new User(myDoc);
                net.autosauler.ballance.shared.User user = dbuser.getProxy();
                list.addUser(user);
            }

        }
        Database.release();

        return list;
    }

    /**
     * Gets the users list from trash.
     * 
     * @return the users from trash
     */
    public static net.autosauler.ballance.shared.UserList getUsersFromTrash(String domain) {
        return getUsers(domain, true);
    }

    /**
     * Restore.
     * 
     * @param domain
     * 
     * @param val
     *            the val
     */
    public static void restore(String domain, Element vals) {
        NodeList nodes = vals.getElementsByTagName("user");
        if (nodes.getLength() > 0) {
            User.restore(domain, nodes);
        }
    }

    /**
     * Instantiates a new user list.
     */
    public UserList() {

    }
}