/*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
* This file is part of jAPS software.
* jAPS is a free software;
* you can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions
* and limitations under the License
*
*
*
* Copyright 2005 AgileTec s.r.l. (http://www.agiletec.it) All rights reserved.
*
*/
package com.agiletec.aps.system.services.role;
import java.util.List;
import com.agiletec.aps.system.exception.ApsSystemException;
/**
* Interfaccia base per il servizio di gestione dei ruoli.
* @author
*/
public interface IRoleManager {
/**
* Restituisce la lista ordinata dei ruoli esistenti.
* @return La lista ordinata dei ruoli esistenti.
*/
public List<Role> getRoles();
/**
* Restituisce un ruolo in base al nome.
* @param roleName Il nome del ruolo richesto.
* @return Il ruolo cercato.
*/
public Role getRole(String roleName);
/**
* Rimuove un ruolo.
* @param role Oggetto di tipo Role relativo al ruolo da rimuovere.
* @throws ApsSystemException in caso di errore.
*/
public void removeRole(Role role) throws ApsSystemException;
/**
* Aggiorna un ruolo.
* @param role Il ruolo da aggiornare.
* @throws ApsSystemException in caso di errore.
*/
public void updateRole(Role role) throws ApsSystemException;
/**
* Aggiunge un ruolo.
* @param role Oggetto di tipo Role relativo al ruolo da aggiungere.
* @throws ApsSystemException in caso di errore.
*/
public void addRole(Role role) throws ApsSystemException;
/**
* Restituisce la lista ordinata dei permessi di autorizzazione.
* @return La lista ordinata dei permessi
*/
public List<Permission> getPermissions();
/**
* Restituisce un permesso in base al nome.
* @param permissionName Il nome del permesso richiesto.
* @return Il permesso richiesto.
*/
public Permission getPermission(String permissionName);
/**
* Rimuove il permesso specificato e dai ruoli.
* @param permissionName Il permesso da rimuovere dal ruolo.
* @throws ApsSystemException in caso di errore.
*/
public void removePermission(String permissionName) throws ApsSystemException;
/**
* Aggiorna un permesso di autorizzazione.
* @param permission Il permesso da aggiornare.
* @throws ApsSystemException in caso di errore.
*/
public void updatePermission(Permission permission) throws ApsSystemException;
/**
* Aggiunge un permesso di autorizzazione.
* @param permission Il permesso da aggiungere.
* @throws ApsSystemException in caso di errore.
*/
public void addPermission(Permission permission) throws ApsSystemException;
/**
* Restituisce il numero di utenti che utilizzano il ruolo immesso.
* @param role Il ruolo di cui trovate il numero di utenti che lo utilizzano.
* @return Il numero di utenti che utilizzano quel ruolo.
* @throws ApsSystemException in caso di errore.
*/
public int getRoleUses(Role role) throws ApsSystemException;
/**
* Restituisce la lista di ruoli comprendente il permesso specificato.
* @param permissionName Il nome del permesso.
* @return La lista di ruoli.
*/
public List<Role> getRolesWithPermission(String permissionName);
}