Newer
Older
EMS-WEB-3.0 / src / main / java / com / casic / accessControl / permission / PermissionChecker.java
wxn on 9 Aug 2016 1 KB first commit
package com.casic.accessControl.permission;

import com.casic.accessControl.user.domain.User;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

public class PermissionChecker
{
    private PermissionMatcher permissionMatcher = new PermissionMatcher();

    private HttpUrlSourceFetcher httpUrlSourceFetcher;

    @Resource
    public void setHttpUrlSourceFetcher(HttpUrlSourceFetcher httpUrlSourceFetcher)
    {
        this.httpUrlSourceFetcher = httpUrlSourceFetcher;
    }

    public boolean isAuthorized(String text,User userObj) {

        List<String> haves = new ArrayList<String>();
        if (userObj == null ||userObj.getRole()==null)
        {
            return false;
        }
        String authorities = userObj.getRole().getFunctions();
        if (authorities == null)
            return false;
        for (String au : authorities.split(",")) {
            haves.add(au);
        }

        for (String want : text.split(",")) {
            for (String have :haves) {
                if (this.permissionMatcher.match(want, have)) {
                    return true;
                }
            }
        }
        return false;
    }

    public void setReadOnly(boolean readOnly) {
        this.permissionMatcher.setReadOnly(readOnly);
    }

    public boolean isReadOnly() {
        return this.permissionMatcher.isReadOnly();
    }
}