Subversion Repositories bacoAlunos

Rev

Rev 1306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.domain;

import pt.estgp.estgweb.Globals;

/**
 * @author Jorge Machado
 * @date 21/Abr/2008
 * @time 14:37:50
 * @see pt.estgp.estgweb.domain
 */

public class CourseUnitBlogImpl extends CourseUnitBlog
{


    public CourseUnitBlogImpl()
    {
        super.setType(Globals.BLOG_TYPE_COURSE_UNIT);
    }

    public boolean canAddPost(GenericUserImpl user)
    {
        return canAddPost(user,false);
    }
    /**
     * Check if user has any target role and if is associated in some way with blog course unit
     *
     * @param user to check
     * @return true if can add post
     */

    public boolean canAddPost(GenericUserImpl user, boolean transaction)
    {
        if(!super.canAddPost(user,transaction))
            return false;
        if(user == null)
            return false;
        if(user instanceof Teacher)
        {
            return ((TeacherImpl)user).hasCourseUnit(getCourseUnit().getId(),transaction);
        }
        else if(user instanceof Student)
        {
            return ((StudentImpl)user).hasCourseUnit(getCourseUnit().getId(),transaction);
        }
        return false;
    }

    public boolean canLoad(GenericUserImpl user)
    {
        return !isCourseUnitInternal() || canAddPost(user);
    }

    public boolean canLoadInOpenTransaction(GenericUserImpl user)
    {
        return !isCourseUnitInternal() || canAddPost(user,true);
    }

    public boolean isOwnedBy(GenericUser u, boolean transaction)
    {
        if(u instanceof UserImpl)
            if(((UserImpl) u).isTeacherOfCourseUnit(getCourseUnit().getId(),transaction))
                return true;
        return false;
    }

    public boolean isOwnedBy(GenericUser u)
    {
        return isOwnedBy(u,false);
    }
}