Skip to content
This repository was archived by the owner on Apr 22, 2026. It is now read-only.

Commit f571d49

Browse files
committed
v0.1.25
1 parent 7324615 commit f571d49

11 files changed

Lines changed: 28 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,16 @@
22

33
All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).
44

5+
## [0.1.25] - 2024-03-40
6+
7+
## Added
8+
- LDAP attribute to indicate password change (stalwartlabs/mail-server#1156)
9+
10+
### Changed
11+
12+
### Fixed
13+
- Make Profile and Security token S3 settings optional (stalwartlabs/mail-server#1166)
14+
515
## [0.1.24] - 2024-02-01
616

717
## Added

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ homepage = "https://stalw.art"
77
keywords = ["web", "admin", "email", "mail", "server"]
88
categories = ["email"]
99
license = "AGPL-3.0-only OR LicenseRef-SEL"
10-
version = "0.1.24"
10+
version = "0.1.25"
1111
edition = "2021"
1212
resolver = "2"
1313

src/components/form/expression.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ pub fn InputExpression(
219219
if if_thens
220220
.get()
221221
.last()
222-
.map_or(true, |(_, v, _)| !v.if_.is_empty() && !v.then_.is_empty())
222+
.is_none_or( |(_, v, _)| !v.if_.is_empty() && !v.then_.is_empty())
223223
{
224224
element
225225
.data

src/components/form/select.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ impl FormData {
423423
[(String::new(), "-- None --".to_string())]
424424
.into_iter()
425425
.chain(source.iter().filter_map(|(id, value)| {
426-
if filter.map_or(true, |values| values.contains(&value.as_str())) {
426+
if filter.is_none_or( |values| values.contains(&value.as_str())) {
427427
(
428428
id.to_string(),
429429
if !value.is_empty() {

src/components/form/stacked_input.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ pub fn StackedInput(
121121
type="button"
122122
class="py-1.5 px-2 inline-flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-gray-800 dark:border-gray-700 dark:text-gray-300 dark:hover:bg-gray-700 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
123123
on:click=move |_| {
124-
if values.get().last().map_or(true, |(_, v, _)| !v.is_empty()) {
124+
if values.get().last().is_none_or( |(_, v, _)| !v.is_empty()) {
125125
element
126126
.data
127127
.update(|data| {

src/components/layout/header.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,7 @@ pub fn Header(permissions: Memo<Option<Permissions>>) -> impl IntoView {
169169
}
170170

171171
class:hidden=move || {
172-
permissions
173-
.get()
174-
.map_or(true, |p| { !p.has_admin_access() })
172+
permissions.get().is_none_or(|p| { !p.has_admin_access() })
175173
}
176174
>
177175

@@ -185,7 +183,7 @@ pub fn Header(permissions: Memo<Option<Permissions>>) -> impl IntoView {
185183
class:hidden=move || {
186184
permissions
187185
.get()
188-
.map_or(true, |p| !p.has_access(Permission::SettingsList))
186+
.is_none_or(|p| !p.has_access(Permission::SettingsList))
189187
}
190188
>
191189

@@ -280,15 +278,12 @@ pub fn Header(permissions: Memo<Option<Permissions>>) -> impl IntoView {
280278
class:hidden=move || {
281279
permissions
282280
.get()
283-
.map_or(
284-
true,
285-
|p| {
286-
!p
287-
.has_access_any(
288-
&[Permission::ManageEncryption, Permission::ManagePasswords],
289-
)
290-
},
291-
)
281+
.is_none_or(|p| {
282+
!p
283+
.has_access_any(
284+
&[Permission::ManageEncryption, Permission::ManagePasswords],
285+
)
286+
})
292287
}
293288
>
294289

src/components/list/pagination.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub fn Pagination(
2121

2222
view! {
2323
<div class="px-6 py-4 grid gap-3 md:flex md:justify-between md:items-center border-t border-gray-200 dark:border-gray-700">
24-
<Show when=move || { total_results.get().is_some_and( |r| r > 0) }>
24+
<Show when=move || { total_results.get().is_some_and(|r| r > 0) }>
2525
<div class="inline-flex items-center gap-x-2">
2626

2727
<p class="text-sm text-gray-600 dark:text-gray-400">
@@ -116,7 +116,7 @@ pub fn Pagination(
116116
type="button"
117117
class="py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 shadow-sm hover:bg-gray-50 disabled:opacity-50 disabled:pointer-events-none dark:bg-slate-900 dark:border-gray-700 dark:text-white dark:hover:bg-gray-800 dark:focus:outline-none dark:focus:ring-1 dark:focus:ring-gray-600"
118118
disabled=move || {
119-
total_results.get().map_or(true, |r| r == 0) || current_page.get() <= 1
119+
total_results.get().is_none_or(|r| r == 0) || current_page.get() <= 1
120120
}
121121

122122
on:click=move |_| {

src/core/form.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ impl FormData {
122122
}
123123

124124
pub fn value_is_empty(&self, id: &str) -> bool {
125-
self.values.get(id).map_or(true, |v| match v {
125+
self.values.get(id).is_none_or(|v| match v {
126126
FormValue::Value(v) => v.is_empty(),
127127
FormValue::Array(v) => v.is_empty(),
128128
FormValue::Expression(v) => v.is_empty(),

src/pages/account/app_password.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ pub fn AppPasswords() -> impl IntoView {
130130

131131
if filter
132132
.as_ref()
133-
.map_or(true, |filter| app_password.name.contains(filter))
133+
.is_none_or(|filter| app_password.name.contains(filter))
134134
{
135135
if offset == 0 {
136136
items.push(app_password);

0 commit comments

Comments
 (0)