/// <summary> /// Recupera as permissões baseada do objeto recebido /// </summary> /// <param name="tablePermissions">Lista de permissões</param> /// <returns></returns> private static Permission GetPermissions(ITablePermission tablePermissions) { // Separa as permissões separadas por ; no config var permissions = SplitPermissionsValue(tablePermissions); // Default valor var result = Permission.Undefined; if (HasAllPermissions(permissions)) { result = Permission.DELETE | Permission.SELECT | Permission.UPDATE | Permission.INSERT; return(result); } foreach (var permission in permissions) { var permissionParsed = Permission.Undefined; var canParse = Enum.TryParse(permission.ToUpper(), out permissionParsed); if (!canParse) { throw new ApplicationException("There is a permissions config that was not correctly setted: " + $"Table: {tablePermissions.Name}; Permission:{permission}"); } result |= permissionParsed; } return(result); }
/// <summary> /// Sepera as informações recebidas /// </summary> /// <param name="tablePermissions"></param> /// <returns></returns> private static string[] SplitPermissionsValue(ITablePermission tablePermissions) { var permissionsString = tablePermissions.Permissions; var permissions = permissionsString.Split(';'); return(permissions); }