<commit_before>package ru.extas.security;

import org.apache.shiro.authz.Permission;

import java.util.EnumSet;
import java.util.List;

import static com.google.common.collect.Lists.newArrayList;

/**
 * <p>DefaultRolePermissoin class.</p>
 *
 * @author <NAME>
 *         Date: 04.03.14
 *         Time: 0:22
 * @version $Id: $Id
 * @since 0.3
 */
public class DefaultRolePermissoin {
	/**
	 * <p>createAdminPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createAdminPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
        for(ExtaDomain domain : EnumSet.allOf(ExtaDomain.class))
		    permissions.add(new ExtaPermission(domain, SecureAction.ALL, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDistributorPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDistributorPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
        // Начало (dashboard)	Все объекты	Полный доступ
        permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
        // Физические лица	Собственные объекты	Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.PERSON, SecureAction.VIEW, SecureTarget.ALL));
        // Компании	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.COMPANY, SecureAction.VIEW, SecureTarget.ALL));
        // Юридические лица	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.LEGAL_ENTITY, SecureAction.VIEW, SecureTarget.ALL));
        // Торговые точки	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.SALE_POINT, SecureAction.VIEW, SecureTarget.ALL));
        // Лиды	Собственные объекты	Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_NEW, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_QUAL, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_CLOSED, SecureAction.VIEW, SecureTarget.ALL));
        // Продажи	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.SALES_OPENED, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.SALES_SUCCESSFUL, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.SALES_CANCELED, SecureAction.VIEW, SecureTarget.ALL));
        // Кредитные продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_CREDIT, SecureAction.VIEW, SecureTarget.ALL));
        // Рассрочка	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSTALL, SecureAction.VIEW, SecureTarget.ALL));
        // Страховые продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSURANCE, SecureAction.VIEW, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDealerPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDealerPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
		// Начало (dashboard)	Все объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
		// Задачи	Собственные объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_TODAY, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_WEEK, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_MONTH, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_ALL, SecureAction.ALL, SecureTarget.OWNONLY));
		// Физические лица	Собственные объекты	Чтение, Ввод, Редактирование
		permissions.add(new ExtaPermission(ExtaDomain.PERSON, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		// Компании	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.COMPANY, SecureAction.VIEW, SecureTarget.SALE_POINT));
		// Юридические лица	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.LEGAL_ENTITY, SecureAction.ALL, SecureTarget.SALE_POINT));
		// Торговые точки	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.SALE_POINT, SecureAction.VIEW, SecureTarget.SALE_POINT));
		// Лиды	Собственные объекты	Чтение, Ввод, Редактирование
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_NEW, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_QUAL, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_CLOSED, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		// Продажи	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.SALES_OPENED, SecureAction.VIEW, SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.SALES_SUCCESSFUL, SecureAction.VIEW, SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.SALES_CANCELED, SecureAction.VIEW, SecureTarget.SALE_POINT));
        // Имущ. страховки | Все объекты | Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.INSURANCE_PROP, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.OWNONLY));
        // Квитанции А-7 | Собственные объекты | Полный доступ
        permissions.add(new ExtaPermission(ExtaDomain.INSURANCE_A_7, SecureAction.ALL, SecureTarget.OWNONLY));
		// Кредитные продукты	Все объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.PROD_CREDIT, SecureAction.VIEW, SecureTarget.ALL));
        // Рассрочка	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSTALL, SecureAction.VIEW, SecureTarget.ALL));
        // Страховые продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSURANCE, SecureAction.VIEW, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDealerManagerPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDealerManagerPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
		// Начало (dashboard)	Все объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
		// Задачи	Собственные объекты	Полный доступ<commit_msg>CRM-75 Реализовать справочник техникиCRM-75 Реализовать справочник техники<commit_after>package ru.extas.security;

import org.apache.shiro.authz.Permission;

import java.util.EnumSet;
import java.util.List;

import static com.google.common.collect.Lists.newArrayList;

/**
 * <p>DefaultRolePermissoin class.</p>
 *
 * @author <NAME>
 *         Date: 04.03.14
 *         Time: 0:22
 * @version $Id: $Id
 * @since 0.3
 */
public class DefaultRolePermissoin {
	/**
	 * <p>createAdminPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createAdminPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
        for(ExtaDomain domain : EnumSet.allOf(ExtaDomain.class))
		    permissions.add(new ExtaPermission(domain, SecureAction.ALL, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDistributorPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDistributorPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
        // Начало (dashboard)	Все объекты	Полный доступ
        permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
        // Физические лица	Собственные объекты	Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.PERSON, SecureAction.VIEW, SecureTarget.ALL));
        // Компании	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.COMPANY, SecureAction.VIEW, SecureTarget.ALL));
        // Юридические лица	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.LEGAL_ENTITY, SecureAction.VIEW, SecureTarget.ALL));
        // Торговые точки	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.SALE_POINT, SecureAction.VIEW, SecureTarget.ALL));
        // Лиды	Собственные объекты	Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_NEW, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_QUAL, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.LEADS_CLOSED, SecureAction.VIEW, SecureTarget.ALL));
        // Продажи	Собственные объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.SALES_OPENED, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.SALES_SUCCESSFUL, SecureAction.VIEW, SecureTarget.ALL));
        permissions.add(new ExtaPermission(ExtaDomain.SALES_CANCELED, SecureAction.VIEW, SecureTarget.ALL));
        // Кредитные продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_CREDIT, SecureAction.VIEW, SecureTarget.ALL));
        // Рассрочка	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSTALL, SecureAction.VIEW, SecureTarget.ALL));
        // Страховые продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSURANCE, SecureAction.VIEW, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDealerPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDealerPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
		// Начало (dashboard)	Все объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
		// Задачи	Собственные объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_TODAY, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_WEEK, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_MONTH, SecureAction.ALL, SecureTarget.OWNONLY));
		permissions.add(new ExtaPermission(ExtaDomain.TASKS_ALL, SecureAction.ALL, SecureTarget.OWNONLY));
		// Физические лица	Собственные объекты	Чтение, Ввод, Редактирование
		permissions.add(new ExtaPermission(ExtaDomain.PERSON, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		// Компании	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.COMPANY, SecureAction.VIEW, SecureTarget.SALE_POINT));
		// Юридические лица	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.LEGAL_ENTITY, SecureAction.ALL, SecureTarget.SALE_POINT));
		// Торговые точки	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.SALE_POINT, SecureAction.VIEW, SecureTarget.SALE_POINT));
		// Лиды	Собственные объекты	Чтение, Ввод, Редактирование
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_NEW, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_QUAL, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.LEADS_CLOSED, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
		// Продажи	Собственные объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.SALES_OPENED, SecureAction.VIEW, SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.SALES_SUCCESSFUL, SecureAction.VIEW, SecureTarget.SALE_POINT));
		permissions.add(new ExtaPermission(ExtaDomain.SALES_CANCELED, SecureAction.VIEW, SecureTarget.SALE_POINT));
        // Имущ. страховки | Все объекты | Чтение, Ввод, Редактирование
        permissions.add(new ExtaPermission(ExtaDomain.INSURANCE_PROP, EnumSet.of(SecureAction.VIEW, SecureAction.EDIT, SecureAction.INSERT), SecureTarget.SALE_POINT));
        // Квитанции А-7 | Собственные объекты | Полный доступ
        permissions.add(new ExtaPermission(ExtaDomain.INSURANCE_A_7, SecureAction.ALL, SecureTarget.OWNONLY));
		// Кредитные продукты	Все объекты	Чтение
		permissions.add(new ExtaPermission(ExtaDomain.PROD_CREDIT, SecureAction.VIEW, SecureTarget.ALL));
        // Рассрочка	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSTALL, SecureAction.VIEW, SecureTarget.ALL));
        // Страховые продукты	Все объекты	Чтение
        permissions.add(new ExtaPermission(ExtaDomain.PROD_INSURANCE, SecureAction.VIEW, SecureTarget.ALL));
		return permissions;
	}

	/**
	 * <p>createDealerManagerPermissions.</p>
	 *
	 * @return a {@link java.util.List} object.
	 */
	public static List<Permission> createDealerManagerPermissions() {
		final List<Permission> permissions;
		permissions = newArrayList();
		// Начало (dashboard)	Все объекты	Полный доступ
		permissions.add(new ExtaPermission(ExtaDomain.DASHBOARD, SecureAction.ALL, SecureTarget.ALL));
		// Задачи	Собственные объекты	Полный доступ
{'fraction_non_alphanumeric': 0.10301434006438397, 'fraction_numerical': 0.0021949078138718174, 'mean_word_length': 4.997806055287406, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5933906', 'n_tokens_mistral': 4861, 'n_tokens_neox': 4791, 'n_words': 767}