Skip to content

Commit e613b61

Browse files
Merge from 'develop'
2 parents a62d772 + 5b1df2e commit e613b61

37 files changed

+885
-42
lines changed

DracoonSdk/DracoonSdk.csproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,15 @@
7676
<Compile Include="SdkInternal\ApiModel\Requests\ApiGetS3Urls.cs" />
7777
<Compile Include="SdkInternal\ApiModel\Requests\ApiRestorePreviousVersionsRequest.cs" />
7878
<Compile Include="SdkInternal\ApiModel\Requests\ApiS3FileUploadPart.cs" />
79+
<Compile Include="SdkInternal\ApiModel\Settings\ApiCharacterRules.cs" />
7980
<Compile Include="SdkInternal\ApiModel\Settings\ApiDefaultsSettings.cs" />
81+
<Compile Include="SdkInternal\ApiModel\Settings\ApiEncryptionPasswordSettings.cs" />
8082
<Compile Include="SdkInternal\ApiModel\Settings\ApiInfrastructureSettings.cs" />
83+
<Compile Include="SdkInternal\ApiModel\Settings\ApiPasswordExpiration.cs" />
84+
<Compile Include="SdkInternal\ApiModel\Settings\ApiPasswordSettings.cs" />
85+
<Compile Include="SdkInternal\ApiModel\Settings\ApiLoginPasswordSettings.cs" />
86+
<Compile Include="SdkInternal\ApiModel\Settings\ApiSharePasswordSettings.cs" />
87+
<Compile Include="SdkInternal\ApiModel\Settings\ApiUserLockout.cs" />
8188
<Compile Include="SdkInternal\ApiModel\Shares\ApiDownloadShare.cs" />
8289
<Compile Include="SdkInternal\ApiModel\Shares\ApiDownloadShareList.cs" />
8390
<Compile Include="SdkInternal\ApiModel\Nodes\ApiFileIdFileKey.cs" />
@@ -185,6 +192,15 @@
185192
<Compile Include="SdkPublic\Model\AvatarInfo.cs" />
186193
<Compile Include="SdkPublic\Model\Classification.cs" />
187194
<Compile Include="SdkPublic\Model\CustomerAccount.cs" />
195+
<Compile Include="SdkPublic\Model\PasswordCharacterPolicies.cs" />
196+
<Compile Include="SdkPublic\Model\PasswordCharacterSet.cs" />
197+
<Compile Include="SdkPublic\Model\PasswordCharacterSetType.cs" />
198+
<Compile Include="SdkPublic\Model\PasswordEncryptionPolicies.cs" />
199+
<Compile Include="SdkPublic\Model\PasswordExpiration.cs" />
200+
<Compile Include="SdkPublic\Model\PasswordLoginFailurePolicies.cs" />
201+
<Compile Include="SdkPublic\Model\PasswordLoginPolicies.cs" />
202+
<Compile Include="SdkPublic\Model\PasswordPolicies.cs" />
203+
<Compile Include="SdkPublic\Model\PasswordSharePolicies.cs" />
188204
<Compile Include="SdkPublic\Model\RecycleBinItem.cs" />
189205
<Compile Include="SdkPublic\Model\RecycleBinItemList.cs" />
190206
<Compile Include="SdkPublic\Model\PreviousVersion.cs" />

DracoonSdk/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@
3434
// [assembly: AssemblyVersion("1.0.*")]
3535
[assembly: AssemblyVersion("1.0.0.0")]
3636
[assembly: AssemblyFileVersion("1.0.0.0")]
37-
[assembly: AssemblyInformationalVersion("1.0.0-beta3")]
37+
[assembly: AssemblyInformationalVersion("1.0.0-beta4")]
3838
[assembly: InternalsVisibleTo("Dracoon.Sdk.Test")]
3939
[assembly: InternalsVisibleTo(assemblyName: "Dracoon.Sdk.UnitTest")]

DracoonSdk/SdkInternal/ApiConfig.cs

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,27 @@
33

44
namespace Dracoon.Sdk.SdkInternal {
55
internal class ApiConfig {
6-
internal const string MinimumApiVersion = "4.6.0";
6+
internal const string MinimumApiVersion = "4.11.0";
77
internal const string ApiPrefix = "api/v4";
88
internal const string AuthorizationHeader = "Authorization";
9+
10+
internal static readonly char[] UPPERCASE_SET = {
11+
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
12+
};
13+
14+
internal static readonly char[] LOWERCASE_SET = {
15+
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
16+
};
17+
18+
internal static readonly char[] NUMERIC_SET = {
19+
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
20+
};
21+
22+
internal static readonly char[] SPECIAL_SET = {
23+
'!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '=', '?', '@', '[', '\\', ']', '^', '_', '{', '|',
24+
'}', '~'
25+
};
26+
927
internal static readonly Encoding ENCODING = Encoding.UTF8;
1028

1129
#region Public-Endpoint
@@ -21,12 +39,6 @@ internal class ApiConfig {
2139

2240
#region User-Endpoint
2341

24-
#region Minimum version requirements
25-
26-
internal const string ApiAvatarFunctions = "4.11.0";
27-
28-
#endregion
29-
3042
#region GET
3143

3244
internal const string ApiGetUserAccount = ApiPrefix + "/user/account";
@@ -85,7 +97,6 @@ internal class ApiConfig {
8597

8698
#region Minimum version requirements
8799

88-
internal const string ApiUseHomeDefaultClassificationMinApiVersion = "4.9.0";
89100
internal const string ApiS3DirectUploadPossible = "4.15.0";
90101

91102
#endregion
@@ -145,6 +156,13 @@ internal class ApiConfig {
145156
internal const string ApiGetGeneralConfig = ApiPrefix + "/config/info/general";
146157
internal const string ApiGetInfrastructureConfig = ApiPrefix + "/config/info/infrastructure";
147158
internal const string ApiGetDefaultsConfig = ApiPrefix + "/config/info/defaults";
159+
internal const string ApiGetPasswordPolicies = ApiPrefix + "/config/info/policies/passwords";
160+
161+
#endregion
162+
163+
#region Minimum version requirements
164+
165+
internal const string ApiGetPasswordPoliciesMinimumVersion = "4.14.0";
148166

149167
#endregion
150168

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System.Collections.Generic;
2+
using Newtonsoft.Json;
3+
4+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
5+
internal class ApiCharacterRules {
6+
[JsonProperty("mustContainCharacters", NullValueHandling = NullValueHandling.Ignore)]
7+
public List<string> MustContainCharacters { get; set; }
8+
9+
[JsonProperty("numberOfCharacteristicsToEnforce", NullValueHandling = NullValueHandling.Ignore)]
10+
public int NumberOfCharacteristicsToEnforce { get; set; }
11+
}
12+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System;
2+
using Newtonsoft.Json;
3+
4+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
5+
internal class ApiEncryptionPasswordSettings {
6+
[JsonProperty("characterRules", NullValueHandling = NullValueHandling.Ignore)]
7+
public ApiCharacterRules CharacterRules { get; set; }
8+
9+
[JsonProperty("minLength", NullValueHandling = NullValueHandling.Ignore)]
10+
public int MinimumPasswordLength { get; set; }
11+
12+
[JsonProperty("rejectUserInfo", NullValueHandling = NullValueHandling.Ignore)]
13+
public bool RejectUserInfo { get; set; }
14+
15+
[JsonProperty("rejectKeyboardPatterns", NullValueHandling = NullValueHandling.Ignore)]
16+
public bool RejectKeyboardPatterns { get; set; }
17+
18+
[JsonProperty("updatedAt", NullValueHandling = NullValueHandling.Ignore)]
19+
public DateTime UpdatedAt { get; set; }
20+
21+
[JsonProperty("updatedBy", NullValueHandling = NullValueHandling.Ignore)]
22+
public ApiUserInfo UpdatedBy { get; set; }
23+
}
24+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System;
2+
using Newtonsoft.Json;
3+
4+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
5+
internal class ApiLoginPasswordSettings {
6+
[JsonProperty("characterRules", NullValueHandling = NullValueHandling.Ignore)]
7+
public ApiCharacterRules CharacterRules { get; set; }
8+
9+
[JsonProperty("minLength", NullValueHandling = NullValueHandling.Ignore)]
10+
public int MinimumPasswordLength { get; set; }
11+
12+
[JsonProperty("rejectDictionaryWords", NullValueHandling = NullValueHandling.Ignore)]
13+
public bool RejectDictionaryWords { get; set; }
14+
15+
[JsonProperty("rejectUserInfo", NullValueHandling = NullValueHandling.Ignore)]
16+
public bool RejectUserInfo { get; set; }
17+
18+
[JsonProperty("rejectKeyboardPatterns", NullValueHandling = NullValueHandling.Ignore)]
19+
public bool RejectKeyboardPatterns { get; set; }
20+
21+
[JsonProperty("numberOfArchivedPasswords", NullValueHandling = NullValueHandling.Ignore)]
22+
public int NumberOfArchivedPasswords { get; set; }
23+
24+
[JsonProperty("passwordExpiration", NullValueHandling = NullValueHandling.Ignore)]
25+
public ApiPasswordExpiration PasswordExpirationRules { get; set; }
26+
27+
[JsonProperty("userLockout", NullValueHandling = NullValueHandling.Ignore)]
28+
public ApiUserLockout UserLockoutRules { get; set; }
29+
30+
[JsonProperty("updatedAt", NullValueHandling = NullValueHandling.Ignore)]
31+
public DateTime UpdatedAt { get; set; }
32+
33+
[JsonProperty("updatedBy", NullValueHandling = NullValueHandling.Ignore)]
34+
public ApiUserInfo UpdatedBy { get; set; }
35+
}
36+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
4+
internal class ApiPasswordExpiration {
5+
[JsonProperty("enabled", NullValueHandling = NullValueHandling.Ignore)]
6+
public bool ExpirationIsEnabled { get; set; }
7+
8+
[JsonProperty("maxPasswordAge", NullValueHandling = NullValueHandling.Ignore)]
9+
public int MaximumPasswordAgeInDays { get; set; }
10+
}
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
4+
internal class ApiPasswordSettings {
5+
[JsonProperty("loginPasswordPolicies", NullValueHandling = NullValueHandling.Ignore)]
6+
public ApiLoginPasswordSettings LoginPasswordSettings { get; set; }
7+
[JsonProperty("sharesPasswordPolicies", NullValueHandling = NullValueHandling.Ignore)]
8+
public ApiSharePasswordSettings SharePasswordSettings { get; set; }
9+
[JsonProperty("encryptionPasswordPolicies", NullValueHandling = NullValueHandling.Ignore)]
10+
public ApiEncryptionPasswordSettings EncryptionPasswordSettings { get; set; }
11+
}
12+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using System;
2+
using Newtonsoft.Json;
3+
4+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
5+
internal class ApiSharePasswordSettings {
6+
[JsonProperty("characterRules", NullValueHandling = NullValueHandling.Ignore)]
7+
public ApiCharacterRules CharacterRules { get; set; }
8+
9+
[JsonProperty("minLength", NullValueHandling = NullValueHandling.Ignore)]
10+
public int MinimumPasswordLength { get; set; }
11+
12+
[JsonProperty("rejectDictionaryWords", NullValueHandling = NullValueHandling.Ignore)]
13+
public bool RejectDictionaryWords { get; set; }
14+
15+
[JsonProperty("rejectUserInfo", NullValueHandling = NullValueHandling.Ignore)]
16+
public bool RejectUserInfo { get; set; }
17+
18+
[JsonProperty("rejectKeyboardPatterns", NullValueHandling = NullValueHandling.Ignore)]
19+
public bool RejectKeyboardPatterns { get; set; }
20+
21+
[JsonProperty("updatedAt", NullValueHandling = NullValueHandling.Ignore)]
22+
public DateTime UpdatedAt { get; set; }
23+
24+
[JsonProperty("updatedBy", NullValueHandling = NullValueHandling.Ignore)]
25+
public ApiUserInfo UpdatedBy { get; set; }
26+
}
27+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using Newtonsoft.Json;
2+
3+
namespace Dracoon.Sdk.SdkInternal.ApiModel {
4+
internal class ApiUserLockout {
5+
[JsonProperty("enabled", NullValueHandling = NullValueHandling.Ignore)]
6+
public bool Enabled { get; set; }
7+
8+
[JsonProperty("maxNumberOfLoginFailures", NullValueHandling = NullValueHandling.Ignore)]
9+
public int MaximumLoginFailureAttempts { get; set; }
10+
11+
[JsonProperty("lockoutPeriod", NullValueHandling = NullValueHandling.Ignore)]
12+
public int MinutesToNextLoginAttempt { get; set; }
13+
}
14+
}

0 commit comments

Comments
 (0)