random password generator

This commit is contained in:
usmannasir
2019-03-12 14:47:58 +05:00
parent 6f2d6d8673
commit 29b6d4d3b4
16 changed files with 446 additions and 225 deletions

View File

@@ -22,6 +22,16 @@ function getCookie(name) {
return cookieValue;
}
function randomPassword(length) {
var chars = "abcdefghijklmnopqrstuvwxyz!@#$%^*()-+<>ABCDEFGHIJKLMNOP1234567890";
var pass = "";
for (var x = 0; x < length; x++) {
var i = Math.floor(Math.random() * chars.length);
pass += chars.charAt(i);
}
return pass;
}
/* Utilities ends here */

View File

@@ -11,13 +11,13 @@ app.controller('createDatabase', function($scope,$http) {
$scope.databaseCreationFailed = true;
$scope.databaseCreated = true;
$scope.couldNotConnect = true;
$scope.generatedPasswordView = true;
$scope.showDetailsBoxes = function(){
$scope.dbDetails = false;
};
$scope.createDatabase = function(){
$scope.createDatabaseLoading = false;
@@ -106,6 +106,15 @@ app.controller('createDatabase', function($scope,$http) {
};
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.dbPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
@@ -365,8 +374,6 @@ app.controller('listDBs', function($scope,$http) {
};
function populateCurrentRecords(){
$scope.recordsFetched = true;
$scope.passwordChanged = true;
@@ -442,7 +449,20 @@ app.controller('listDBs', function($scope,$http) {
}
};
}
////
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.dbPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});

View File

@@ -57,6 +57,19 @@
<div class="col-sm-6">
<input type="password" name="email" class="form-control" ng-model="dbPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()" class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="dbPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()" class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>
@@ -64,7 +77,6 @@
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="createDatabase()" class="btn btn-primary btn-lg">{% trans "Create Database" %}</button>
</div>
</div>

View File

@@ -3,118 +3,137 @@
{% block title %}{% trans "List Databases - CyberPanel" %}{% endblock %}
{% block content %}
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<div class="container">
<div id="page-title">
<h2>{% trans "List Databases" %}</h2>
<p>{% trans "List Databases or change their passwords." %}</p>
</div>
<div ng-controller="listDBs" class="panel">
<div class="panel-body">
<h3 class="content-box-header">
{% trans "List Databases" %} <img ng-hide="dbLoading" src="{% static 'images/loading.gif' %}">
</h3>
<div class="example-box-wrapper">
<form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Select Domain" %}</label>
<div class="col-sm-6">
<select ng-change="fetchDBs()" ng-model="selectedDomain" class="form-control">
{% for items in websiteList %}
<option>{{ items }}</option>
{% endfor %}
</select>
</div>
</div>
<div ng-hide="notificationsBox" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<div ng-hide="recordsFetched" class="alert alert-success">
<p>{% trans "Records successfully fetched for" %} <strong>{$ domainFeteched $}</strong></p>
</div>
<div ng-hide="passwordChanged" class="alert alert-success">
{% trans "Password changed for: " %} <strong>{$ dbUsername $}</strong>
</div>
<div ng-hide="canNotChangePassword" class="alert alert-danger">
<p>{% trans "Cannot change password for " %}<strong>{$ dbUsername $}</strong>, {% trans "Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could Not Connect to server. Please refresh this page" %}</p>
</div>
</div>
</div>
<div ng-hide="changePasswordBox" class="form-group">
<label class="col-sm-3 control-label">{$ dbUsername $}</label>
<div class="col-sm-6">
<input name="dom" type="password" class="form-control" ng-model="dbPassword" required>
</div>
<div style="margin-top: 1%" class="col-sm-6 col-md-offset-3">
<button type="button" ng-click="changePasswordBtn()" class="btn btn-primary btn-lg">{% trans "Change Password" %}</button>
</div>
</div>
<!------ List of records --------------->
<div ng-hide="dbAccounts" class="form-group">
<div class="col-sm-12">
<table class="table">
<thead>
<tr>
<th>{% trans "ID" %}</th>
<th>{% trans "Database Name" %}</th>
<th>{% trans "Database User" %}</th>
<th>{% trans "Password" %}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="record in records track by $index">
<td ng-bind="record.id"></td>
<td ng-bind="record.dbName"></td>
<td ng-bind="record.dbUser"></td>
<td><button type="button" ng-click="changePassword(record.dbUser)" class="btn ra-100 btn-purple">{% trans "Change" %}</button></td>
</tr>
</tbody>
</table>
</div>
</div>
<!------ List of records --------------->
</form>
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<div class="container">
<div id="page-title">
<h2>{% trans "List Databases" %}</h2>
<p>{% trans "List Databases or change their passwords." %}</p>
</div>
<div ng-controller="listDBs" class="panel">
<div class="panel-body">
<h3 class="content-box-header">
{% trans "List Databases" %} <img ng-hide="dbLoading" src="{% static 'images/loading.gif' %}">
</h3>
<div class="example-box-wrapper">
<form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Select Domain" %}</label>
<div class="col-sm-6">
<select ng-change="fetchDBs()" ng-model="selectedDomain" class="form-control">
{% for items in websiteList %}
<option>{{ items }}</option>
{% endfor %}
</select>
</div>
</div>
<div ng-hide="notificationsBox" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-6">
<div ng-hide="recordsFetched" class="alert alert-success">
<p>{% trans "Records successfully fetched for" %} <strong>{$ domainFeteched
$}</strong></p>
</div>
<div ng-hide="passwordChanged" class="alert alert-success">
{% trans "Password changed for: " %} <strong>{$ dbUsername $}</strong>
</div>
<div ng-hide="canNotChangePassword" class="alert alert-danger">
<p>{% trans "Cannot change password for " %}<strong>{$ dbUsername
$}</strong>, {% trans "Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could Not Connect to server. Please refresh this page" %}</p>
</div>
</div>
</div>
<div ng-hide="changePasswordBox" class="form-group">
<label class="col-sm-3 control-label">{$ dbUsername $}</label>
<div class="col-sm-6">
<input name="dom" type="password" class="form-control" ng-model="dbPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
<label style="margin-top: 1%" class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div style="margin-top: 1%" class="col-sm-6">
<input name="dom" type="text" class="form-control" ng-model="dbPassword" required>
</div>
<div style="margin-top: 1%" class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
<div style="margin-top: 1%" class="col-sm-6 col-md-offset-3">
<button type="button" ng-click="changePasswordBtn()"
class="btn btn-primary btn-lg">{% trans "Change Password" %}</button>
</div>
</div>
<!------ List of records --------------->
<div ng-hide="dbAccounts" class="form-group">
<div class="col-sm-12">
<table class="table">
<thead>
<tr>
<th>{% trans "ID" %}</th>
<th>{% trans "Database Name" %}</th>
<th>{% trans "Database User" %}</th>
<th>{% trans "Password" %}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="record in records track by $index">
<td ng-bind="record.id"></td>
<td ng-bind="record.dbName"></td>
<td ng-bind="record.dbUser"></td>
<td>
<button type="button" ng-click="changePassword(record.dbUser)"
class="btn ra-100 btn-purple">{% trans "Change" %}</button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!------ List of records --------------->
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -24,6 +24,10 @@ class FileManager:
def changeOwner(self, path):
domainName = self.data['domainName']
website = Websites.objects.get(domain=domainName)
if path.find('..') > -1:
return self.ajaxPre(0, 'Not allowed to move in this path, please choose location inside home!')
command = "sudo chown -R " + website.externalApp + ':' + website.externalApp + ' ' + self.returnPathEnclosed(path)
ProcessUtilities.executioner(command)
@@ -99,6 +103,9 @@ class FileManager:
finalData = {}
finalData['status'] = 1
if self.data['fileName'].find('..') > -1:
return self.ajaxPre(0, 'Not allowed to move in this path, please choose location inside home!')
command = "sudo touch " + self.returnPathEnclosed(self.data['fileName'])
ProcessUtilities.executioner(command)
@@ -195,6 +202,9 @@ class FileManager:
finalData = {}
finalData['status'] = 1
if self.data['newFileName'].find('..') > -1:
return self.ajaxPre(0, 'Not allowed to move in this path, please choose location inside home!')
command = 'sudo mv ' + self.returnPathEnclosed(self.data['basePath'] + '/' + self.data['existingName']) + ' ' + self.returnPathEnclosed(self.data['basePath'] + '/' + self.data['newFileName'])
ProcessUtilities.executioner(command)

View File

@@ -23,8 +23,6 @@ app.controller('createFTPAccount', function($scope,$http) {
};
$scope.createFTPAccount = function(){
$scope.ftpLoading = false;
@@ -116,6 +114,19 @@ app.controller('createFTPAccount', function($scope,$http) {
};
///
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.ftpPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
/* Java script code to create account ends here */
@@ -142,8 +153,6 @@ app.controller('deleteFTPAccount', function($scope,$http) {
$scope.deleteFTPButtonInit = true;
var url = "/ftp/fetchFTPAccounts";
@@ -382,8 +391,6 @@ app.controller('listFTPAccounts', function($scope,$http) {
};
function populateCurrentRecords(){
$scope.recordsFetched = true;
$scope.passwordChanged = true;
@@ -459,6 +466,19 @@ app.controller('listFTPAccounts', function($scope,$http) {
}
};
}
////
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.ftpPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});

View File

@@ -68,6 +68,22 @@
<div class="col-sm-6">
<input type="password" class="form-control" ng-model="ftpPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="ftpPassword"
required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>
<div ng-hide="ftpDetails" class="form-group">

View File

@@ -87,6 +87,22 @@
required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
<label style="margin-top: 1%"
class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div style="margin-top: 1%" class="col-sm-6">
<input name="dom" type="text" class="form-control" ng-model="ftpPassword" required>
</div>
<div style="margin-top: 1%" class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
<div style="margin-top: 1%" class="col-sm-6 col-md-offset-3">
<button type="button" ng-click="changePasswordBtn()"
class="btn btn-primary btn-lg btn-block">{% trans "Change Password" %}</button>

View File

@@ -39,9 +39,6 @@ application.config(['$interpolateProvider',
}
]);
application.controller('loginSystem', function($scope,$http,$window) {
@@ -98,4 +95,3 @@ application.controller('loginSystem', function($scope,$http,$window) {
/* Java script code to to Check Login status ends here */

View File

@@ -26,8 +26,6 @@ app.controller('createEmailAccount', function($scope,$http) {
};
$scope.createEmailAccount = function(){
$scope.emailDetails = false;
@@ -117,11 +115,21 @@ app.controller('createEmailAccount', function($scope,$http) {
};
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.emailPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
/* Java script code to create account ends here */
/* Java script code to create account */
app.controller('deleteEmailAccount', function($scope,$http) {
@@ -318,7 +326,6 @@ app.controller('deleteEmailAccount', function($scope,$http) {
/* Java script code to create account ends here */
/* Java script code to create account */
app.controller('changeEmailPassword', function($scope,$http) {
@@ -408,7 +415,6 @@ app.controller('changeEmailPassword', function($scope,$http) {
};
$scope.changePassword = function(){
$scope.emailLoading = false;
@@ -493,8 +499,6 @@ app.controller('changeEmailPassword', function($scope,$http) {
};
$scope.deleteEmailAccount = function(){
var domain = $scope.selectedEmail;
@@ -505,6 +509,21 @@ app.controller('changeEmailPassword', function($scope,$http) {
};
///
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.emailPassword = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
/* Java script code to create account ends here */

View File

@@ -69,6 +69,22 @@
<div class="col-sm-6">
<input type="password" class="form-control" ng-model="emailPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="emailPassword"
required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>
<!------ Modification form that appears after a click --------------->

View File

@@ -69,6 +69,22 @@
<div class="col-sm-6">
<input type="password" class="form-control" ng-model="emailPassword" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="emailPassword"
required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>

View File

@@ -144,7 +144,8 @@ class WebsiteManager:
if ACLManager.currentContextPermission(currentACL, 'createWebsite') == 0:
return ACLManager.loadErrorJson('createWebSiteStatus', 0)
domain = data['domainName'].lstrip('http://').lstrip('https://').rstrip('/')
domain = data['domainName']
#logging.CyberCPLogFileWriter.writeToFile(domain)
adminEmail = data['adminEmail']
phpSelection = data['phpSelection']
packageName = data['package']
@@ -186,7 +187,7 @@ class WebsiteManager:
admin = Administrator.objects.get(pk=userID)
masterDomain = data['masterDomain']
domain = data['domainName'].lstrip('http://').lstrip('https://').rstrip('/')
domain = data['domainName']
phpSelection = data['phpSelection']
path = data['path']
tempStatusPath = "/home/cyberpanel/" + str(randint(1000, 9999))

View File

@@ -108,7 +108,6 @@ app.controller('createUserCtr', function($scope,$http) {
};
$scope.hideSomeThings = function(){
$scope.userCreated = true;
@@ -117,6 +116,19 @@ app.controller('createUserCtr', function($scope,$http) {
};
///
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.password = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
/* Java script code to create account ends here */
@@ -333,7 +345,6 @@ app.controller('modifyUser', function($scope,$http) {
};
$scope.showLimitsBox = function () {
if ($scope.accountType == "Normal User"){
@@ -353,6 +364,19 @@ app.controller('modifyUser', function($scope,$http) {
};
///
$scope.generatedPasswordView = true;
$scope.generatePassword = function () {
$scope.generatedPasswordView = false;
$scope.password = randomPassword(12);
};
$scope.usePassword = function () {
$scope.generatedPasswordView = true;
};
});
/* Java script code to modify user account ends here */

View File

@@ -85,6 +85,21 @@
<input name="password" type="password" class="form-control" ng-model="password"
required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="password" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>
<div class="form-group">

View File

@@ -3,26 +3,27 @@
{% block title %}{% trans "Modify User - CyberPanel" %}{% endblock %}
{% block content %}
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<div class="container">
<div id="page-title">
<h2>{% trans "Modify User" %}</h2>
<p>{% trans "Modify existing user settings on this page." %}</p>
</div>
<div class="container">
<div id="page-title">
<h2>{% trans "Modify User" %}</h2>
<p>{% trans "Modify existing user settings on this page." %}</p>
</div>
<div class="panel">
<div ng-controller="modifyUser" class="panel-body">
<h3 class="content-box-header">
{% trans "Details" %} <img ng-hide="userModificationLoading" src="{% static 'images/loading.gif' %}">
</h3>
<div class="example-box-wrapper">
<div class="panel">
<div ng-controller="modifyUser" class="panel-body">
<h3 class="content-box-header">
{% trans "Details" %} <img ng-hide="userModificationLoading"
src="{% static 'images/loading.gif' %}">
</h3>
<div class="example-box-wrapper">
<form action="/" class="form-horizontal bordered-row panel-body">
<form action="/" class="form-horizontal bordered-row panel-body">
<div class="form-group">
<div class="form-group">
<label class="col-sm-3 control-label">{% trans "Select Account" %}</label>
<div class="col-sm-6">
<select ng-change="fetchUserDetails()" ng-model="accountUsername" class="form-control">
@@ -31,96 +32,106 @@
{% endfor %}
</select>
</div>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "First Name" %}</label>
<div class="col-sm-6">
<input type="text" class="form-control" ng-model="firstName" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Last Name" %}</label>
<div class="col-sm-6">
<input type="text" class="form-control" ng-model="lastName" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Email" %}</label>
<div class="col-sm-6">
<input type="email" class="form-control" ng-model="email" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Password" %}</label>
<div class="col-sm-6">
<input type="password" class="form-control" ng-model="password" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="modifyUser()" class="btn btn-primary btn-lg">{% trans "Modify User" %}</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-6">
<div ng-hide="userModified" class="alert alert-success">
<p>{% trans "Account with username:" %} <strong>{$ userName $}</strong>{% trans " is successfully modified." %}</p>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "First Name" %}</label>
<div class="col-sm-6">
<input type="text" class="form-control" ng-model="firstName" required>
</div>
</div>
<div ng-hide="canotModifyUser" class="alert alert-danger">
<p>{% trans "Cannot modify user. Error message:" %} {$ errorMessage $}</p>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Last Name" %}</label>
<div class="col-sm-6">
<input type="text" class="form-control" ng-model="lastName" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Email" %}</label>
<div class="col-sm-6">
<input type="email" class="form-control" ng-model="email" required>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label">{% trans "Password" %}</label>
<div class="col-sm-6">
<input type="password" class="form-control" ng-model="password" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="generatePassword()"
class="btn btn-primary">{% trans "Generate" %}</button>
</div>
</div>
<div ng-hide="generatedPasswordView" class="form-group">
<label class="col-sm-3 control-label">{% trans "Generated Password" %}</label>
<div class="col-sm-6">
<input type="text" name="email" class="form-control" ng-model="password" required>
</div>
<div class="col-sm-3">
<button type="button" ng-click="usePassword()"
class="btn btn-primary">{% trans "Use" %}</button>
</div>
</div>
<div ng-hide="acctDetailsFetched" class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="modifyUser()"
class="btn btn-primary btn-lg">{% trans "Modify User" %}</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-6">
<div ng-hide="userModified" class="alert alert-success">
<p>{% trans "Account with username:" %} <strong>{$ userName
$}</strong>{% trans " is successfully modified." %}</p>
</div>
<div ng-hide="canotModifyUser" class="alert alert-danger">
<p>{% trans "Cannot modify user. Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
</div>
<div ng-hide="canotFetchDetails" class="alert alert-danger">
<p>{% trans "Cannot fetch details. Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="detailsFetched" class="alert alert-success">
<p>{% trans "Details fetched." %}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
</div>
<div ng-hide="canotFetchDetails" class="alert alert-danger">
<p>{% trans "Cannot fetch details. Error message:" %} {$ errorMessage $}</p>
</div>
<div ng-hide="detailsFetched" class="alert alert-success">
<p>{% trans "Details fetched." %}</p>
</div>
</div>
</div>
</form>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}