using Abp.Application.Features;
using Abp.Localization;
using Abp.MultiTenancy;
namespace Abp.Authorization
{
///
/// This context is used on method.
///
public interface IPermissionDefinitionContext
{
///
/// Creates a new permission under this group.
///
/// Unique name of the permission
/// Display name of the permission
/// A brief description for this permission
/// Which side can use this permission
/// Depended feature(s) of this permission
/// New created permission
Permission CreatePermission(
string name,
ILocalizableString displayName = null,
ILocalizableString description = null,
MultiTenancySides multiTenancySides = MultiTenancySides.Host | MultiTenancySides.Tenant,
IFeatureDependency featureDependency = null
);
///
/// Gets a permission with given name or null if can not find.
///
/// Unique name of the permission
/// Permission object or null
Permission GetPermissionOrNull(string name);
///
/// Remove permission with given name
///
///
void RemovePermission(string name);
}
}