Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
80aeabad51 | |||
419e1f473a | |||
80988125e8 | |||
271ad2da71 | |||
b2732f2595 | |||
53820e1e34 |
@ -327,6 +327,15 @@
|
|||||||
"contributions": [
|
"contributions": [
|
||||||
"doc"
|
"doc"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"login": "EternalSide",
|
||||||
|
"name": "Lesha",
|
||||||
|
"avatar_url": "https://avatars.githubusercontent.com/u/118743608?v=4",
|
||||||
|
"profile": "http://t.me/AAT_L",
|
||||||
|
"contributions": [
|
||||||
|
"code"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"contributorsPerLine": 7,
|
"contributorsPerLine": 7,
|
||||||
|
@ -168,6 +168,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zvn2060"><img src="https://avatars.githubusercontent.com/u/45450852?v=4?s=100" width="100px;" alt="HI_OuO"/><br /><sub><b>HI_OuO</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=zvn2060" title="Code">💻</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/zvn2060"><img src="https://avatars.githubusercontent.com/u/45450852?v=4?s=100" width="100px;" alt="HI_OuO"/><br /><sub><b>HI_OuO</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=zvn2060" title="Code">💻</a></td>
|
||||||
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tripheo0412"><img src="https://avatars.githubusercontent.com/u/25382052?v=4?s=100" width="100px;" alt="Tri Hoang"/><br /><sub><b>Tri Hoang</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=tripheo0412" title="Documentation">📖</a></td>
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tripheo0412"><img src="https://avatars.githubusercontent.com/u/25382052?v=4?s=100" width="100px;" alt="Tri Hoang"/><br /><sub><b>Tri Hoang</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=tripheo0412" title="Documentation">📖</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="top" width="14.28%"><a href="http://t.me/AAT_L"><img src="https://avatars.githubusercontent.com/u/118743608?v=4?s=100" width="100px;" alt="Lesha"/><br /><sub><b>Lesha</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=EternalSide" title="Code">💻</a></td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "keycloakify",
|
"name": "keycloakify",
|
||||||
"version": "11.8.14",
|
"version": "11.8.15",
|
||||||
"description": "Framework to create custom Keycloak UIs",
|
"description": "Framework to create custom Keycloak UIs",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -769,6 +769,8 @@ export declare namespace Validators {
|
|||||||
export type PasswordPolicies = {
|
export type PasswordPolicies = {
|
||||||
/** The minimum length of the password */
|
/** The minimum length of the password */
|
||||||
length?: number;
|
length?: number;
|
||||||
|
/** The maximum length of the password */
|
||||||
|
maxLength?: number;
|
||||||
/** The minimum number of digits required in the password */
|
/** The minimum number of digits required in the password */
|
||||||
digits?: number;
|
digits?: number;
|
||||||
/** The minimum number of lowercase characters required in the password */
|
/** The minimum number of lowercase characters required in the password */
|
||||||
|
@ -509,6 +509,8 @@ function formStateSelector(params: { state: internal.State }): FormState {
|
|||||||
switch (error.source.name) {
|
switch (error.source.name) {
|
||||||
case "length":
|
case "length":
|
||||||
return hasLostFocusAtLeastOnce;
|
return hasLostFocusAtLeastOnce;
|
||||||
|
case "maxLength":
|
||||||
|
return hasLostFocusAtLeastOnce;
|
||||||
case "digits":
|
case "digits":
|
||||||
return hasLostFocusAtLeastOnce;
|
return hasLostFocusAtLeastOnce;
|
||||||
case "lowerCase":
|
case "lowerCase":
|
||||||
@ -967,6 +969,34 @@ function createGetErrors(params: { kcContext: KcContextLike_useGetErrors }) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_password_policy_x: {
|
||||||
|
const policyName = "maxLength";
|
||||||
|
|
||||||
|
const policy = passwordPolicies[policyName];
|
||||||
|
|
||||||
|
if (!policy) {
|
||||||
|
break check_password_policy_x;
|
||||||
|
}
|
||||||
|
|
||||||
|
const maxLength = policy;
|
||||||
|
|
||||||
|
if (value.length <= maxLength) {
|
||||||
|
break check_password_policy_x;
|
||||||
|
}
|
||||||
|
|
||||||
|
errors.push({
|
||||||
|
advancedMsgArgs: [
|
||||||
|
"invalidPasswordMaxLengthMessage" satisfies MessageKey_defaultSet,
|
||||||
|
`${maxLength}`
|
||||||
|
] as const,
|
||||||
|
fieldIndex: undefined,
|
||||||
|
source: {
|
||||||
|
type: "passwordPolicy",
|
||||||
|
name: policyName
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
check_password_policy_x: {
|
check_password_policy_x: {
|
||||||
const policyName = "digits";
|
const policyName = "digits";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user