Subversion Repositories bacoAlunos

Rev

Rev 135 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain;

import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.Globals;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * @author Jorge Machado
 * @date 2/Mar/2008
 * @time 10:27:25
 * @see pt.estgp.estgweb.domain
 */

public class UserImpl extends User
{
    private boolean newUser = false;

    public UserImpl()
    {
    }

    public UserImpl(5+0%2Fdocs%2Fapi+Date">Date saveDate, boolean superuser, 1.5.0/docs/api/java/lang/String.html">String name, 1.5.0/docs/api/java/lang/String.html">String username, 1.5.0/docs/api/java/lang/String.html">String password, 1.5.0/docs/api/java/lang/String.html">String roles, 1.5.0/docs/api/java/lang/String.html">String address, 1.5.0/docs/api/java/lang/String.html">String zip, 1.5.0/docs/api/java/lang/String.html">String country, 1.5.0/docs/api/java/lang/String.html">String email, 1.5.0/docs/api/java/lang/String.html">String outEmail, 1.5.0/docs/api/java/lang/String.html">String phonenumber, 1.5.0/docs/api/java/lang/String.html">String sex, 1.5.0/docs/api/java/lang/String.html">String bi, 5+0%2Fdocs%2Fapi+Date">Date birthDate, Set<Group> groups, Set<CourseUserAssociation> courses)
    {
        super(saveDate, superuser, name, username, password, roles, address, zip, country, email, outEmail, phonenumber, sex, bi, birthDate, groups, courses);
    }


    public boolean isNewUser()
    {
        return newUser;
    }

    public void setNewUser(boolean newUser)
    {
        this.newUser = newUser;
    }

    /**
     * check if user is in some group
     *
     * @param g to check
     * @return true if belongs to group
     */

    public boolean hasGroup(1.5.0/docs/api/java/security/acl/Group.html">Group g)
    {
        if (getGroups() == null)
            return false;
        for (1.5.0/docs/api/java/security/acl/Group.html">Group group : getGroups())
        {
            if (group.getId() == g.getId())
                return true;
        }
        return false;
    }

    public void addRole(1.5.0/docs/api/java/lang/String.html">String role)
    {
        setRoles(RoleManager.catRole(getRoles(), role));
    }

    public boolean hasRole(1.5.0/docs/api/java/lang/String.html">String r)
    {
        if (r == null || getRoles() == null || getRoles().length() == 0)
            return false;
        for (1.5.0/docs/api/java/lang/String.html">String role : RoleManager.getRolesFromSerial(getRoles()))
        {
            if (role.equals(r))
                return true;
        }
        return false;
    }

    /**
     * @return a list of role Strings
     */

    public List<String> getOwnerRoles()
    {
        return getRolesList();
    }

    public List<String> getRolesList()
    {
        return RoleManager.getRolesFromSerial(getRoles());
    }

    public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable()
    {
        return getId();
    }

    public User getOwner()
    {
        return this;
    }

    public boolean isSuperUser()
    {
        return super.isSuperuser() || hasRole(Globals.SUPER_USER_ROLE);
    }

    public boolean isAdmin()
    {
        return hasRole(Globals.ADMIN_ROLE);
    }

    public boolean isSuperUserOrAdmin()
    {
        return isSuperUser() || isAdmin();
    }
}