1
0
mirror of https://github.com/cydrobolt/polr.git synced 2024-09-19 15:11:40 +02:00

Toggle User 'Active' status in Admin panel

This commit is contained in:
Serdar Hazar 2016-09-30 23:51:43 +03:00
parent 51a9413b92
commit f55a47f89a
4 changed files with 48 additions and 1 deletions

View File

@ -116,6 +116,30 @@ class AjaxController extends Controller {
return "OK";
}
public function toggleUserActive(Request $request) {
self::ensureAdmin();
$user_id = $request->input('user_id');
$user = UserHelper::getUserById($user_id, true);
if (!$user) {
abort(404, 'User not found.');
}
$current_status = $user->active;
if ($current_status == 1) {
$new_status = 0;
}
else {
$new_status = 1;
}
$user->active = $new_status;
$user->save();
return $user->active;
}
public function deleteUser(Request $request) {
self::ensureAdmin();

View File

@ -46,6 +46,7 @@ $app->group(['prefix' => '/api/v2', 'namespace' => 'App\Http\Controllers'], func
$app->post('admin/toggle_api_active', ['as' => 'api_toggle_api_active', 'uses' => 'AjaxController@toggleAPIActive']);
$app->post('admin/generate_new_api_key', ['as' => 'api_generate_new_api_key', 'uses' => 'AjaxController@generateNewAPIKey']);
$app->post('admin/edit_api_quota', ['as' => 'api_edit_quota', 'uses' => 'AjaxController@editAPIQuota']);
$app->post('admin/toggle_user_active', ['as' => 'api_generate_new_api_key', 'uses' => 'AjaxController@toggleUserActive']);
$app->post('admin/delete_user', ['as' => 'api_generate_new_api_key', 'uses' => 'AjaxController@deleteUser']);
$app->post('admin/toggle_link', ['as' => 'api_toggle_link', 'uses' => 'AjaxController@toggleLink']);
$app->post('admin/delete_link', ['as' => 'api_delete_link', 'uses' => 'AjaxController@deleteLink']);

View File

@ -26,6 +26,24 @@ polr.controller('AdminCtrl', function($scope, $compile) {
el.parent().parent().slideUp();
};
$scope.toggleUserActiveStatus = function($event) {
var el = $($event.target);
var user_id = el.data('user-id');
apiCall('admin/toggle_user_active', {
'user_id': user_id,
}, function(new_status) {
new_status = res_value_to_text(new_status);
el.text(new_status);
if (el.hasClass('btn-success')) {
el.removeClass('btn-success').addClass('btn-danger');
}
else {
el.removeClass('btn-danger').addClass('btn-success');
}
});
}
$scope.deleteUser = function($event) {
var el = $($event.target);
var user_id = el.data('user-id');

View File

@ -12,7 +12,11 @@
<td class='wrap-text'>{{$user->username}}</td>
<td class='wrap-text'>{{$user->email}}</td>
<td>{{$user->created_at}}</td>
<td>{{$user->active ? 'true' : 'false'}}</td>
<td>
<a ng-click="toggleUserActiveStatus($event)" class='btn btn-sm status-display @if ($user->active)btn-success @else btn-danger @endif @if (session('username') == $user->username)disabled @endif' data-user-id='{{$user->id}}'>
{{$user->active ? 'true' : 'false'}}
</a>
</td>
<td>
@if ($user->active)
<a class='activate-api-modal btn btn-sm btn-info'