Fixed Access Code Binding
Admins can now bind codes of other users
This commit is contained in:
parent
d487d7a105
commit
e5a8526755
@ -67,7 +67,7 @@ public partial class AccessCode
|
||||
{
|
||||
if (response != null)
|
||||
{
|
||||
var result = await LoginService.BindAccessCode(inputAccessCode, Client);
|
||||
var result = await LoginService.BindAccessCode(inputAccessCode.ToUpper().Trim(), response.Users.First(u => u.Baid == Baid), Client);
|
||||
switch (result)
|
||||
{
|
||||
case 0:
|
||||
@ -106,6 +106,13 @@ public partial class AccessCode
|
||||
"Access code cannot be empty.<br />Please enter a valid access code.",
|
||||
"Ok");
|
||||
break;
|
||||
case 5:
|
||||
await DialogService.ShowMessageBox(
|
||||
"Error",
|
||||
(MarkupString)
|
||||
"You can't do that!<br />You need to be an admin to edit someone else's access codes.",
|
||||
"Ok");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -152,16 +152,17 @@ public class LoginService
|
||||
if (newLoggedInUser is null) return;
|
||||
LoggedInUser = newLoggedInUser;
|
||||
}
|
||||
|
||||
public async Task<int> BindAccessCode(string inputAccessCode, HttpClient client)
|
||||
|
||||
public async Task<int> BindAccessCode(string inputAccessCode, User user, HttpClient client)
|
||||
{
|
||||
if (inputAccessCode.Trim() == "") return 4;
|
||||
if (!IsLoggedIn) return 0;
|
||||
if (LoggedInUser.AccessCodes.Count >= boundAccessCodeUpperLimit) return 2;
|
||||
if (inputAccessCode.Trim() == "") return 4; /*Empty access code*/
|
||||
if (!IsLoggedIn && LoginRequired) return 0; /*User not connected and login is required*/
|
||||
if (LoginRequired && !IsAdmin && !(user.Baid == GetLoggedInUser().Baid)) return 5; /*User not admin trying to update someone elses Access Codes*/
|
||||
if (user.AccessCodes.Count >= boundAccessCodeUpperLimit) return 2; /*Limit of codes has been reached*/
|
||||
var request = new BindAccessCodeRequest
|
||||
{
|
||||
AccessCode = inputAccessCode,
|
||||
Baid = LoggedInUser.Baid
|
||||
Baid = user.Baid
|
||||
};
|
||||
var responseMessage = await client.PostAsJsonAsync("api/Cards", request);
|
||||
return responseMessage.IsSuccessStatusCode ? 1 : 3;
|
||||
|
Loading…
x
Reference in New Issue
Block a user