Edit UserRoles over the webserver
This commit is contained in:
1 parent
652fdabc3e
commit
08f4428e28
3 files changed
+135
-3
No files matched your search
@@ -119,6 +119,22 @@ namespace ServerLib
|
|||||||
SongInfo[] getAllSongs();
|
SongInfo[] getAllSongs();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region user management
|
||||||
|
|
||||||
|
[OperationContract]
|
||||||
|
[WebInvoke(Method = "GET",
|
||||||
|
ResponseFormat = WebMessageFormat.Json,
|
||||||
|
UriTemplate = "/getUserRole?profileId={profileId}")]
|
||||||
|
int getUserRole(int profileId);
|
||||||
|
|
||||||
|
[OperationContract]
|
||||||
|
[WebInvoke(Method = "GET",
|
||||||
|
ResponseFormat = WebMessageFormat.Json,
|
||||||
|
UriTemplate = "/setUserRole?profileId={profileId}&userRole={userRole}")]
|
||||||
|
void setUserRole(int profileId, int userRole);
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
class CWebservice : ICWebservice
|
class CWebservice : ICWebservice
|
||||||
@@ -386,5 +402,25 @@ namespace ServerLib
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region user management
|
||||||
|
|
||||||
|
public int getUserRole(int profileId)
|
||||||
|
{
|
||||||
|
return CServer.GetUserRole(profileId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserRole(int profileId, int userRole)
|
||||||
|
{
|
||||||
|
Guid sessionKey = getSession();
|
||||||
|
if (!SessionControl.requestRight(sessionKey, UserRights.EditAllProfiles))
|
||||||
|
{
|
||||||
|
WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Forbidden;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
CServer.SetUserRole(profileId, userRole);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -83,10 +83,10 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="#" data-transition="slidefade">
|
<a href="#selectUserAdmin" data-transition="slidefade">
|
||||||
<img src="img/admin.png">
|
<img src="img/admin.png">
|
||||||
<h2>Administration</h2>
|
<h2>Administration</h2>
|
||||||
<p>Configure options and rights</p>
|
<p>Configure user rights</p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -231,6 +231,39 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- /page -->
|
<!-- /page -->
|
||||||
|
|
||||||
|
<div id="selectUserAdmin" data-content-theme="a" data-role="page" data-add-back-btn="true">
|
||||||
|
<div data-role="header">
|
||||||
|
<h1>All profiles</h1>
|
||||||
|
</div>
|
||||||
|
<!-- /header -->
|
||||||
|
|
||||||
|
<div id="selectUserAdminContent" data-role="content">
|
||||||
|
<ul id="selectUserAdminList" data-role="listview"></ul>
|
||||||
|
</div>
|
||||||
|
<!-- /content -->
|
||||||
|
</div>
|
||||||
|
<!-- /page -->
|
||||||
|
|
||||||
|
<div id="displayUserAdmin" data-content-theme="a" data-role="page" data-add-back-btn="true">
|
||||||
|
<div data-role="header">
|
||||||
|
<h1>Profile</h1>
|
||||||
|
</div>
|
||||||
|
<!-- /header -->
|
||||||
|
|
||||||
|
<div id="displayUserAdminContent" data-role="content">
|
||||||
|
<fieldset data-role="controlgroup">
|
||||||
|
<legend></legend>
|
||||||
|
<input type="checkbox" id="roleAuthenticatedUser" checked="checked" disabled="disabled">
|
||||||
|
<label for="roleAuthenticatedUser">AuthenticatedUser</label>
|
||||||
|
<input type="checkbox" id="roleAdministrator">
|
||||||
|
<label for="roleAdministrator">Administrator</label>
|
||||||
|
</fieldset>
|
||||||
|
<a data-role="button" id="btnRoleSave" data-transition="slidefade">Save</a>
|
||||||
|
</div>
|
||||||
|
<!-- /content -->
|
||||||
|
</div>
|
||||||
|
<!-- /page -->
|
||||||
|
|
||||||
<div class="ui-loader-background"></div>
|
<div class="ui-loader-background"></div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ function initPageLoadHandler() {
|
|||||||
headers: { "session": sessionId },
|
headers: { "session": sessionId },
|
||||||
data: JSON.stringify(dataToUpload),
|
data: JSON.stringify(dataToUpload),
|
||||||
success: function (msg) {
|
success: function (msg) {
|
||||||
|
history.back();
|
||||||
}
|
}
|
||||||
}).always(function () {
|
}).always(function () {
|
||||||
$.mobile.loading('hide');
|
$.mobile.loading('hide');
|
||||||
@@ -298,6 +298,67 @@ function initPageLoadHandler() {
|
|||||||
handleGetAllSongs()
|
handleGetAllSongs()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//pageLoadHandler for selectUserAdmin
|
||||||
|
$(document).on('pagebeforeshow', '#selectUserAdmin', function () {
|
||||||
|
var promise = $.ajax({
|
||||||
|
url: "getProfileList",
|
||||||
|
headers: { "session": sessionId }
|
||||||
|
}).done(function (data) {
|
||||||
|
$('#selectUserAdminList').children().remove();
|
||||||
|
|
||||||
|
function handleSelectUserAdminLineClick(e) {
|
||||||
|
profileIdRequest = parseInt(e.currentTarget.id.replace("SelectUserAdminLine_", ""));
|
||||||
|
$.mobile.changePage("#displayUserAdmin", { transition: "slidefade" });
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var profile in data) {
|
||||||
|
$('<li id="SelectUserAdminLine_' + data[profile].ProfileId + '"> <a href="#"> <img src="' + ((data[profile].Avatar && data[profile].Avatar.base64Data) ? data[profile].Avatar.base64Data : "img/profile.png") + '"> <h2>' + data[profile].PlayerName + '</h2> <p>Click here to edit roles for ' + data[profile].PlayerName + '</p> </a> </li>')
|
||||||
|
.appendTo('#selectUserAdminList')
|
||||||
|
.click(handleSelectUserAdminLineClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#selectUserAdminList').listview('refresh');
|
||||||
|
});
|
||||||
|
|
||||||
|
// Save promise on page so the transition handler can find it.
|
||||||
|
$(this).data('promise', promise);
|
||||||
|
});
|
||||||
|
|
||||||
|
//pageLoadHandler for displayUserAdmin
|
||||||
|
$(document).on('pagebeforeshow', '#displayUserAdmin', function () {
|
||||||
|
var promise = $.ajax({
|
||||||
|
url: "getUserRole?profileId=" + profileIdRequest,
|
||||||
|
headers: { "session": sessionId }
|
||||||
|
}).done(function (result) {
|
||||||
|
$('#roleAdministrator').prop("checked", ((result & 0x01) != 0)).checkboxradio("refresh");
|
||||||
|
|
||||||
|
$('#btnRoleSave').unbind('click').click(function () {
|
||||||
|
$('#content').wrap('<div class="overlay" />');
|
||||||
|
$.mobile.loading('show', {
|
||||||
|
text: 'Save...',
|
||||||
|
textVisible: true
|
||||||
|
});
|
||||||
|
|
||||||
|
var role = 0;
|
||||||
|
if ($('#roleAdministrator').prop("checked")) {
|
||||||
|
role = (role | 0x01);
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: "setUserRole?profileId=" + profileIdRequest + "&userRole=" + role,
|
||||||
|
headers: { "session": sessionId }
|
||||||
|
}).done(function (result) {
|
||||||
|
$.mobile.loading('hide');
|
||||||
|
$('#content').unwrap();
|
||||||
|
history.back();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// Save promise on page so the transition handler can find it.
|
||||||
|
$(this).data('promise', promise);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function initLoginPageHandler() {
|
function initLoginPageHandler() {
|
||||||
@@ -419,6 +480,8 @@ function initMainPageHandler() {
|
|||||||
|
|
||||||
$('#capture').click();
|
$('#capture').click();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function initKeyboardPageHandler() {
|
function initKeyboardPageHandler() {
|
||||||
|
|||||||
Reference in new issue
Block a user