/*
* Copyright 2013 cruxframework.org.
*
* 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 org.cruxframework.crux.core.client.permission;
import com.google.gwt.core.shared.GWT;
import com.google.gwt.user.client.ui.HasEnabled;
import com.google.gwt.user.client.ui.UIObject;
/**
* Check if the current user is authorized to realize the job related with given roles.
* @author Thiago da Rosa de Bustamante
*
*/
public class Permissions
{
private static RoleManager roleManager;
private static PermissionsUIHandler permissionsUIHandler;
/**
* Return true if the current user has the given role associated to him
* @param role
* @return
*/
public static boolean hasRole(String role)
{
return getRoleManager().hasRole(role);
}
/**
* Notify the given widget that current user has no role for edit its contents
* @param widget
*/
public static void markAsUnauthorizedForEdition(HasEnabled widget)
{
getPermissionsUIHandler().markAsUnauthorizedForEdition(widget);
}
/**
* Notify the given uiObject that current user has no role for view its contents
* @param uiObject
*/
public static void markAsUnauthorizedForViewing(UIObject uiObject)
{
getPermissionsUIHandler().markAsUnauthorizedForViewing(uiObject);
}
private static RoleManager getRoleManager()
{
if (roleManager == null)
{
roleManager = GWT.create(RoleManager.class);
}
return roleManager;
}
private static PermissionsUIHandler getPermissionsUIHandler()
{
if (permissionsUIHandler == null)
{
permissionsUIHandler = GWT.create(PermissionsUIHandler.class);
}
return permissionsUIHandler;
}
}