mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-06-27 18:29:37 +02:00
ACL Manager
This commit is contained in:
File diff suppressed because it is too large
Load Diff
72
userManagment/templates/userManagment/changeUserACL.html
Normal file
72
userManagment/templates/userManagment/changeUserACL.html
Normal file
@@ -0,0 +1,72 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Change User ACL - 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 "Change User ACL" %}</h2>
|
||||
<p>{% trans "This page can be used to change ACL for CyberPanel users." %}</p>
|
||||
</div>
|
||||
|
||||
<div ng-controller="changeUserACLCTRL" class="panel">
|
||||
<div class="panel-body">
|
||||
<h3 class="title-hero">
|
||||
{% trans "Delete Website" %} <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}">
|
||||
</h3>
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
|
||||
<form action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select User" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="selectedUser" class="form-control">
|
||||
{% for items in usersList %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select ACL" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="selectedACL" class="form-control">
|
||||
{% for items in aclNames %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div ng-hide="deleteACLButton" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="changeACLFunc()" class="btn btn-primary btn-lg btn-block">{% trans "Change ACL" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
423
userManagment/templates/userManagment/createACL.html
Normal file
423
userManagment/templates/userManagment/createACL.html
Normal file
@@ -0,0 +1,423 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Create new ACL - 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 "Create New ACL" %}</h2>
|
||||
<p>{% trans "Create new Access Control defination, that specifies what CyberPanel users can do." %}</p>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div ng-controller="createACLCTRL" class="panel-body">
|
||||
<h3 class="title-hero">
|
||||
{% trans "ACL Details" %}
|
||||
</h3>
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
|
||||
<form name="createUser" action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "ACL Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input placeholder="E.g support" type="text" class="form-control" ng-model="aclName" required>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-change="adminHook()" ng-model="makeAdmin" type="checkbox" value="">
|
||||
{% trans "Make Admin" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Version Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="versionManagement" type="checkbox" value="">
|
||||
{% trans "Version Management" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createNewUser" type="checkbox" value="">
|
||||
{% trans "Create New User" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="resellerCenter" type="checkbox" value="">
|
||||
{% trans "Reseller Center" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteUser" type="checkbox" value="">
|
||||
{% trans "Delete User" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="changeUserACL" type="checkbox" value="">
|
||||
{% trans "Change User ACL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Website Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createWebsite" type="checkbox" value="">
|
||||
{% trans "Create Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="modifyWebsite" type="checkbox" value="">
|
||||
{% trans "Modify Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="suspendWebsite" type="checkbox" value="">
|
||||
{% trans "Suspend Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteWebsite" type="checkbox" value="">
|
||||
{% trans "Delete Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Package Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createPackage" type="checkbox" value="">
|
||||
{% trans "Create Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deletePackage" type="checkbox" value="">
|
||||
{% trans "Delete Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="modifyPackage" type="checkbox" value="">
|
||||
{% trans "Modify Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Database Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createDatabase" type="checkbox" value="">
|
||||
{% trans "Create Database" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteDatabase" type="checkbox" value="">
|
||||
{% trans "Delete Database" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="listDatabases" type="checkbox" value="">
|
||||
{% trans "List Databases" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "DNS Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createNameServer" type="checkbox" value="">
|
||||
{% trans "Create Nameserver" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createDNSZone" type="checkbox" value="">
|
||||
{% trans "Delete DNS Zone" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteZone" type="checkbox" value="">
|
||||
{% trans "Delete Zone" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="addDeleteRecords" type="checkbox" value="">
|
||||
{% trans "Add/Delete" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Email Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createEmail" type="checkbox" value="">
|
||||
{% trans "Create Email" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteEmail" type="checkbox" value="">
|
||||
{% trans "Delete Email" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="emailForwarding" type="checkbox" value="">
|
||||
{% trans "Email Forwarding" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="changeEmailPassword" type="checkbox" value="">
|
||||
{% trans "Change Email Password" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="dkimManager" type="checkbox" value="">
|
||||
{% trans "DKIM Manager" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "FTP Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createFTPAccount" type="checkbox" value="">
|
||||
{% trans "Create FTP Account" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteFTPAccount" type="checkbox" value="">
|
||||
{% trans "Delete FTP Account" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="listFTPAccounts" type="checkbox" value="">
|
||||
{% trans "List FTP Accounts" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Backup Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createBackup" type="checkbox" value="">
|
||||
{% trans "Create Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="restoreBackup" type="checkbox" value="">
|
||||
{% trans "Restore Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="addDeleteDestinations" type="checkbox" value="">
|
||||
{% trans "Add/Delete Destination" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="scheDuleBackups" type="checkbox" value="">
|
||||
{% trans "Achedule Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="remoteBackups" type="checkbox" value="">
|
||||
{% trans "Remote Back ups" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "SSL Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="manageSSL" type="checkbox" value="">
|
||||
{% trans "Manage SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="hostnameSSL" type="checkbox" value="">
|
||||
{% trans "Hostname SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="mailServerSSL" type="checkbox" value="">
|
||||
{% trans "MailServer SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="createACLFunc()" class="btn btn-primary btn-lg btn-block">{% trans "Create ACL" %} <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -54,57 +54,34 @@
|
||||
|
||||
|
||||
|
||||
<!------------ Account Type ------------>
|
||||
|
||||
|
||||
{% if adminType == 1 %}
|
||||
|
||||
<!------------ Account ACL ------------>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Account Type" %}</label>
|
||||
<label class="col-sm-3 control-label">{% trans "Select ACL" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-change="showLimitsBox()" ng-model="accountType" class="form-control">
|
||||
<option>Admin</option>
|
||||
<option>Normal User</option>
|
||||
<select ng-model="selectedACL" class="form-control">
|
||||
{% for items in aclNames %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
<!------------ Account ACL ------------>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Account Type" %}</label>
|
||||
<label class="col-sm-3 control-label">{% trans "Websites Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-change="showLimitsBox()" ng-model="accountType" class="form-control">
|
||||
<option>Normal User</option>
|
||||
</select>
|
||||
<input placeholder="0 = Unlimited" type="number" class="form-control" ng-model="websitesLimits" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
<!------------ Account Type ------------>
|
||||
|
||||
|
||||
<div ng-hide="acctsLimit" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Accounts Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="userAccountsLimit" type="number" class="form-control" ng-model="userAccountsLimit" required>
|
||||
</div>
|
||||
<div ng-show="createUser.userAccountsLimit.$error.number" class="current-pack">{% trans "Only Numbers" %}</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Username" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="username" ng-change="hideSomeThings()" type="text" class="form-control" ng-model="userName" required>
|
||||
<input type="text" class="form-control" ng-model="userName" required>
|
||||
</div>
|
||||
<div ng-show="createUser.username.$error.pattern" class="current-pack">{% trans "Username should be lowercase alphanumeric." %}</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -114,8 +91,6 @@
|
||||
<div class="col-sm-6">
|
||||
<input name="password" type="password" class="form-control" ng-model="password" required>
|
||||
</div>
|
||||
<div ng-show="createUser.password.$error.pattern" class="current-pack">{% trans "Must contain one number and one special character." %}</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -123,12 +98,7 @@
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button ng-disabled="createUser.websitesLimit.$error.number ||
|
||||
createUser.userAccountsLimit.$error.number ||
|
||||
createUser.email.$error.email ||
|
||||
createUser.firstName.$error.pattern ||
|
||||
createUser.lastName.$error.pattern"
|
||||
type="button" ng-click="createUserFunc()" class="btn btn-primary btn-lg btn-block">{% trans "Create User" %}</button>
|
||||
<button type="button" ng-click="createUserFunc()" class="btn btn-primary btn-lg btn-block">{% trans "Create User" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
68
userManagment/templates/userManagment/deleteACL.html
Normal file
68
userManagment/templates/userManagment/deleteACL.html
Normal file
@@ -0,0 +1,68 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Delete ACL - 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 "Delete ACL" %}</h2>
|
||||
<p>{% trans "This page can be used to delete ACL." %}</p>
|
||||
</div>
|
||||
|
||||
<div ng-controller="deleteACTCTRL" class="panel">
|
||||
<div class="panel-body">
|
||||
<h3 class="title-hero">
|
||||
{% trans "Delete Website" %} <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}">
|
||||
</h3>
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
|
||||
<form action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select ACL" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="aclToBeDeleted" class="form-control">
|
||||
{% for items in aclNames %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="deleteACLFunc()" class="btn btn-primary btn-lg btn-block">{% trans "Delete ACL" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-hide="deleteACLButton" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="deleteACLFinal()" class="btn btn-primary btn-lg btn-block">{% trans "Are you sure?" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
428
userManagment/templates/userManagment/modifyACL.html
Normal file
428
userManagment/templates/userManagment/modifyACL.html
Normal file
@@ -0,0 +1,428 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Modify an ACL - 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 "Modify an ACL" %}</h2>
|
||||
<p>{% trans "On this page you can modify an existing ACL." %}</p>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<div ng-controller="modifyACLCtrl" class="panel-body">
|
||||
<h3 class="title-hero">
|
||||
{% trans "ACL Details" %} - <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}">
|
||||
</h3>
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
|
||||
<form action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select ACL" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-change="fetchDetails()" ng-model="aclToModify" class="form-control">
|
||||
{% for items in aclNames %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-change="adminHook()" ng-model="makeAdmin" type="checkbox" value="">
|
||||
{% trans "Make Admin" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Version Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="versionManagement" type="checkbox" value="">
|
||||
{% trans "Version Management" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createNewUser" type="checkbox" value="">
|
||||
{% trans "Create New User" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="resellerCenter" type="checkbox" value="">
|
||||
{% trans "Reseller Center" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteUser" type="checkbox" value="">
|
||||
{% trans "Delete User" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="changeUserACL" type="checkbox" value="">
|
||||
{% trans "Change User ACL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Website Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createWebsite" type="checkbox" value="">
|
||||
{% trans "Create Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="modifyWebsite" type="checkbox" value="">
|
||||
{% trans "Modify Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="suspendWebsite" type="checkbox" value="">
|
||||
{% trans "Suspend Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteWebsite" type="checkbox" value="">
|
||||
{% trans "Delete Website" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Package Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createPackage" type="checkbox" value="">
|
||||
{% trans "Create Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deletePackage" type="checkbox" value="">
|
||||
{% trans "Delete Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="modifyPackage" type="checkbox" value="">
|
||||
{% trans "Modify Package" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Database Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createDatabase" type="checkbox" value="">
|
||||
{% trans "Create Database" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteDatabase" type="checkbox" value="">
|
||||
{% trans "Delete Database" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="listDatabases" type="checkbox" value="">
|
||||
{% trans "List Databases" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "DNS Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createNameServer" type="checkbox" value="">
|
||||
{% trans "Create Nameserver" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createDNSZone" type="checkbox" value="">
|
||||
{% trans "Delete DNS Zone" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteZone" type="checkbox" value="">
|
||||
{% trans "Delete Zone" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="addDeleteRecords" type="checkbox" value="">
|
||||
{% trans "Add/Delete" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Email Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createEmail" type="checkbox" value="">
|
||||
{% trans "Create Email" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteEmail" type="checkbox" value="">
|
||||
{% trans "Delete Email" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="emailForwarding" type="checkbox" value="">
|
||||
{% trans "Email Forwarding" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="changeEmailPassword" type="checkbox" value="">
|
||||
{% trans "Change Email Password" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="dkimManager" type="checkbox" value="">
|
||||
{% trans "DKIM Manager" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "FTP Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createFTPAccount" type="checkbox" value="">
|
||||
{% trans "Create FTP Account" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="deleteFTPAccount" type="checkbox" value="">
|
||||
{% trans "Delete FTP Account" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="listFTPAccounts" type="checkbox" value="">
|
||||
{% trans "List FTP Accounts" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Backup Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="createBackup" type="checkbox" value="">
|
||||
{% trans "Create Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="restoreBackup" type="checkbox" value="">
|
||||
{% trans "Restore Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="addDeleteDestinations" type="checkbox" value="">
|
||||
{% trans "Add/Delete Destination" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="scheDuleBackups" type="checkbox" value="">
|
||||
{% trans "Achedule Back up" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="remoteBackups" type="checkbox" value="">
|
||||
{% trans "Remote Back ups" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "SSL Management" %}</label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="manageSSL" type="checkbox" value="">
|
||||
{% trans "Manage SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="hostnameSSL" type="checkbox" value="">
|
||||
{% trans "Hostname SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-9">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input ng-model="mailServerSSL" type="checkbox" value="">
|
||||
{% trans "MailServer SSL" %}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="aclDetails" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="saveChanges()" class="btn btn-primary btn-lg btn-block">{% trans "Save Changes" %} <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}"></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -22,17 +22,16 @@
|
||||
|
||||
<form action="/" class="form-horizontal bordered-row">
|
||||
|
||||
<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">
|
||||
{% for accts in acctNames %}
|
||||
<option>{{ accts }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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">
|
||||
{% for accts in acctNames %}
|
||||
<option>{{ accts }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-hide="acctDetailsFetched" class="form-group">
|
||||
@@ -58,55 +57,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!------------ Account Type ------------>
|
||||
|
||||
|
||||
{% if adminType == 1 %}
|
||||
|
||||
|
||||
<div ng-hide="accountTypeView" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Account Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-change="showLimitsBox()" ng-model="accountType" class="form-control">
|
||||
<option>Admin</option>
|
||||
<option>Normal User</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="current-pack">{% trans "Currently:" %} {$ currentAccountType $}</div>
|
||||
</div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<div ng-hide="accountTypeView" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Account Type" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-change="showLimitsBox()" ng-model="accountType" class="form-control">
|
||||
<option>Normal User</option>
|
||||
|
||||
</select>
|
||||
</div>
|
||||
<div class="current-pack">{% trans "Currently:" %} {$ currentAccountType $}</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
<!------------ Account Type ------------>
|
||||
|
||||
{% if adminType == 1 %}
|
||||
<div ng-hide="userAccountsLimit" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Accounts Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="number" class="form-control" ng-model="userAccountsLimitValue" required>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
<div ng-hide="acctDetailsFetched" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Password" %}</label>
|
||||
<div class="col-sm-6">
|
||||
@@ -116,8 +66,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div ng-hide="acctDetailsFetched" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
|
||||
78
userManagment/templates/userManagment/resellerCenter.html
Normal file
78
userManagment/templates/userManagment/resellerCenter.html
Normal file
@@ -0,0 +1,78 @@
|
||||
{% extends "baseTemplate/index.html" %}
|
||||
{% load i18n %}
|
||||
{% block title %}{% trans "Reseller Center - 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 "Reseller Center" %}</h2>
|
||||
<p>{% trans "Change owner of users and change websites limits." %}</p>
|
||||
</div>
|
||||
|
||||
<div ng-controller="resellerCenterCTRL" class="panel">
|
||||
<div class="panel-body">
|
||||
<h3 class="title-hero">
|
||||
{% trans "Reseller Center" %} <img ng-hide="aclLoading" src="{% static 'images/loading.gif' %}">
|
||||
</h3>
|
||||
<div class="example-box-wrapper">
|
||||
|
||||
|
||||
<form action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select User" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="userToBeModified" class="form-control">
|
||||
{% for items in userToBeModified %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "New Owner" %} </label>
|
||||
<div class="col-sm-6">
|
||||
<select ng-model="newOwner" class="form-control">
|
||||
{% for items in resellerPrivUsers %}
|
||||
<option>{{ items }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Websites Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="number" class="form-control" ng-model="websitesLimit" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="saveResellerChanges()" class="btn btn-primary btn-lg btn-block">{% trans "Save Changes" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -55,29 +55,12 @@
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Account Level" %}</label>
|
||||
<label class="col-sm-3 control-label">{% trans "Account ACL" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="current-pack">{{ type }}</div>
|
||||
<div class="current-pack">{{ accountACL }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% if typeNumeric == 1 %}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Accounts Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="current-pack">{{ userAccountsLimit }} {% trans "( 0 = Unlimited )" %}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% elif typeNumeric == 2 %}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "User Accounts Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<div class="current-pack">{{ userAccountsLimit }} {% trans "( 0 = Unlimited )" %}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Websites Limit" %}</label>
|
||||
<div class="col-sm-6">
|
||||
|
||||
@@ -16,4 +16,16 @@ urlpatterns = [
|
||||
|
||||
url(r'^deleteUser',views.deleteUser,name="deleteUser"),
|
||||
url(r'^submitUserDeletion',views.submitUserDeletion,name="submitUserDeletion"),
|
||||
|
||||
url(r'^createNewACL$',views.createNewACL,name="createNewACL"),
|
||||
url(r'^createACLFunc$',views.createACLFunc,name="createACLFunc"),
|
||||
url(r'^deleteACL$',views.deleteACL,name="deleteACL"),
|
||||
url(r'^deleteACLFunc$',views.deleteACLFunc,name="deleteACLFunc"),
|
||||
url(r'^modifyACL$',views.modifyACL,name="modifyACL"),
|
||||
url(r'^fetchACLDetails$',views.fetchACLDetails,name="fetchACLDetails"),
|
||||
url(r'^submitACLModifications$',views.submitACLModifications,name="submitACLModifications"),
|
||||
url(r'^changeUserACL$',views.changeUserACL,name="changeUserACL"),
|
||||
url(r'^changeACLFunc$',views.changeACLFunc,name="changeACLFunc"),
|
||||
url(r'^resellerCenter$',views.resellerCenter,name="resellerCenter"),
|
||||
url(r'^saveResellerChanges$',views.saveResellerChanges,name="saveResellerChanges"),
|
||||
]
|
||||
@@ -4,10 +4,11 @@ from __future__ import unicode_literals
|
||||
from django.shortcuts import render,redirect
|
||||
from django.http import HttpResponse
|
||||
from loginSystem.views import loadLoginPage
|
||||
from loginSystem.models import Administrator
|
||||
from loginSystem.models import Administrator, ACL
|
||||
import json
|
||||
from plogical import hashPassword
|
||||
from plogical import CyberCPLogFileWriter as logging
|
||||
from plogical.acl import ACLManager
|
||||
|
||||
# Create your views here.
|
||||
|
||||
@@ -26,7 +27,6 @@ def loadUserHome(request):
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def viewProfile(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
@@ -38,143 +38,119 @@ def viewProfile(request):
|
||||
AdminData['userName'] = admin.userName
|
||||
AdminData['firstName'] = admin.firstName
|
||||
AdminData['lastName'] = admin.lastName
|
||||
AdminData['userAccountsLimit'] = admin.initUserAccountsLimit
|
||||
AdminData['websitesLimit'] = admin.initWebsitesLimit
|
||||
AdminData['email'] = admin.email
|
||||
AdminData['typeNumeric'] = admin.type
|
||||
|
||||
if admin.type == 1:
|
||||
AdminData['type'] = "root"
|
||||
elif admin.type == 2:
|
||||
AdminData['type'] = "Reseller"
|
||||
else:
|
||||
AdminData['type'] = "User"
|
||||
AdminData['accountACL'] = admin.acl.name
|
||||
|
||||
return render(request, 'userManagment/userProfile.html',AdminData)
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def createUser(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
admin = Administrator.objects.get(pk=userID)
|
||||
if currentACL['admin'] == 1:
|
||||
aclNames = ACLManager.unFileteredACLs()
|
||||
return render(request, 'userManagment/createUser.html', {'aclNames' : aclNames})
|
||||
elif currentACL['changeUserACL'] == 1:
|
||||
aclNames = ACLManager.unFileteredACLs()
|
||||
return render(request, 'userManagment/createUser.html', {'aclNames': aclNames})
|
||||
elif currentACL['createNewUser'] == 1:
|
||||
aclNames = ['user']
|
||||
return render(request, 'userManagment/createUser.html', {'aclNames': aclNames})
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
if admin.type == 3:
|
||||
return HttpResponse("You don't have enough privileges to access this page.")
|
||||
|
||||
try:
|
||||
adminType = admin.type
|
||||
|
||||
return render(request, 'userManagment/createUser.html',{"adminType":adminType})
|
||||
|
||||
except BaseException,msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
return HttpResponse("Look for errors in CyberCP Main Log File")
|
||||
|
||||
except KeyError:
|
||||
except BaseException,msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
def submitUserCreation(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
currentAdmin = Administrator.objects.get(pk=val)
|
||||
data = json.loads(request.body)
|
||||
firstName = data['firstName']
|
||||
lastName = data['lastName']
|
||||
email = data['email']
|
||||
userName = data['userName']
|
||||
password = data['password']
|
||||
websitesLimit = data['websitesLimit']
|
||||
selectedACL = data['selectedACL']
|
||||
|
||||
childUsers = Administrator.objects.filter(owner=currentAdmin.pk).count()
|
||||
|
||||
if currentAdmin.type == 1:
|
||||
pass
|
||||
selectedACL = ACL.objects.get(name=selectedACL)
|
||||
|
||||
if selectedACL.adminStatus == 1:
|
||||
type = 1
|
||||
else:
|
||||
if currentAdmin.initWebsitesLimit == 0:
|
||||
pass
|
||||
type = 3
|
||||
|
||||
elif currentAdmin.initUserAccountsLimit == childUsers:
|
||||
data_ret = {'createStatus': 0,
|
||||
'error_message': "Reached Maximum User Creation Limit"}
|
||||
password = hashPassword.hash_password(password)
|
||||
currentAdmin = Administrator.objects.get(pk=userID)
|
||||
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
else:
|
||||
pass
|
||||
if ACLManager.websitesLimitCheck(currentAdmin, websitesLimit) == 0:
|
||||
data_ret = {'createStatus': 0,
|
||||
'error_message': "You've reached maximum websites limit as a reseller."}
|
||||
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.body)
|
||||
firstName = data['firstName']
|
||||
lastName = data['lastName']
|
||||
email = data['email']
|
||||
userName = data['userName']
|
||||
password = data['password']
|
||||
if currentACL['admin'] == 1:
|
||||
|
||||
password = hashPassword.hash_password(password)
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=type,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
)
|
||||
newAdmin.save()
|
||||
|
||||
accountType = data['accountType']
|
||||
elif currentACL['changeUserACL'] == 1:
|
||||
|
||||
if accountType == "Admin":
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=type,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
)
|
||||
newAdmin.save()
|
||||
elif currentACL['createNewUser'] == 1:
|
||||
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=1,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=0,
|
||||
owner=currentAdmin.pk
|
||||
)
|
||||
newAdmin.save()
|
||||
currentAdmin.save()
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=type,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
)
|
||||
newAdmin.save()
|
||||
else:
|
||||
data_ret = {'createStatus': 0,
|
||||
'error_message': "You are not authorized to access this resource."}
|
||||
|
||||
data_ret = {'createStatus': 1,
|
||||
'error_message': "None"}
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
elif accountType == "Normal User":
|
||||
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=3,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=0,
|
||||
owner=currentAdmin.pk
|
||||
)
|
||||
newAdmin.save()
|
||||
currentAdmin.save()
|
||||
|
||||
data_ret = {'createStatus': 1,
|
||||
'error_message': "None"}
|
||||
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
else:
|
||||
websitesLimit = data['websitesLimit']
|
||||
userAccountsLimit = 0
|
||||
|
||||
newAdmin = Administrator(firstName=firstName,
|
||||
lastName=lastName,
|
||||
email=email,
|
||||
type=2,
|
||||
userName=userName,
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
initUserAccountsLimit=userAccountsLimit,
|
||||
owner=currentAdmin.pk
|
||||
)
|
||||
newAdmin.save()
|
||||
currentAdmin.save()
|
||||
|
||||
data_ret = {'createStatus': 1,
|
||||
'error_message': "None"}
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
data_ret = {'createStatus': 1,
|
||||
'error_message': "None"}
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'createStatus': 0, 'error_message': str(msg)}
|
||||
@@ -186,29 +162,11 @@ def submitUserCreation(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def modifyUsers(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
|
||||
admin = Administrator.objects.get(pk=userID)
|
||||
adminNames = []
|
||||
|
||||
if admin.type == 1:
|
||||
admins = Administrator.objects.all()
|
||||
adminType = 1
|
||||
for items in admins:
|
||||
adminNames.append(items.userName)
|
||||
elif admin.type == 2:
|
||||
admins = Administrator.objects.filter(owner=admin.pk)
|
||||
adminType = 2
|
||||
for items in admins:
|
||||
adminNames.append(items.userName)
|
||||
else:
|
||||
adminType = 3
|
||||
adminNames.append(admin.userName)
|
||||
|
||||
return render(request, 'userManagment/modifyUser.html',{"acctNames":adminNames,"adminType":adminType})
|
||||
adminNames = ACLManager.loadAllUsers(userID)
|
||||
return render(request, 'userManagment/modifyUser.html',{"acctNames":adminNames})
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
@@ -216,9 +174,6 @@ def fetchUserDetails(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
try:
|
||||
|
||||
currentAdmin = Administrator.objects.get(pk=val)
|
||||
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.body)
|
||||
accountUsername = data['accountUsername']
|
||||
@@ -229,22 +184,12 @@ def fetchUserDetails(request):
|
||||
lastName = user.lastName
|
||||
email = user.email
|
||||
|
||||
if user.type == 1:
|
||||
accountType = "Administrator"
|
||||
elif user.type == 2:
|
||||
accountType = "Reseller"
|
||||
else:
|
||||
accountType = "Normal User"
|
||||
|
||||
|
||||
userAccountsLimit = user.initUserAccountsLimit
|
||||
websitesLimit = user.initWebsitesLimit
|
||||
|
||||
userDetails = {"firstName":firstName,
|
||||
"lastName": lastName,
|
||||
"email": email,
|
||||
"accountType": accountType,
|
||||
"userAccountsLimit": userAccountsLimit,
|
||||
"acl": user.acl.name,
|
||||
"websitesLimit": websitesLimit}
|
||||
|
||||
data_ret = {'fetchStatus': 1, 'error_message': 'None',"userDetails":userDetails}
|
||||
@@ -252,7 +197,6 @@ def fetchUserDetails(request):
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'fetchStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
@@ -263,12 +207,10 @@ def fetchUserDetails(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def saveModifications(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
try:
|
||||
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.body)
|
||||
accountUsername = data['accountUsername']
|
||||
@@ -281,77 +223,18 @@ def saveModifications(request):
|
||||
|
||||
password = hashPassword.hash_password(data['password'])
|
||||
|
||||
if admin.type != 1:
|
||||
if admin != user:
|
||||
data_ret = {'saveStatus': 1, 'error_message': 'Not enough privileges'}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.type = 0
|
||||
|
||||
|
||||
if user.type == 1:
|
||||
userAccountsLimit = 0
|
||||
websitesLimit = 0
|
||||
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.initWebsitesLimit = websitesLimit
|
||||
user.initUserAccountsLimit = userAccountsLimit
|
||||
user.type = 1
|
||||
|
||||
user.save()
|
||||
|
||||
data_ret = {'saveStatus': 1, 'error_message': 'None'}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
|
||||
if data['accountType'] == "Reseller":
|
||||
userAccountsLimit = 0
|
||||
websitesLimit = 0
|
||||
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.initWebsitesLimit = websitesLimit
|
||||
user.initUserAccountsLimit = userAccountsLimit
|
||||
user.type = 2
|
||||
|
||||
user.save()
|
||||
|
||||
elif data['accountType'] == "Normal User":
|
||||
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.initWebsitesLimit = 0
|
||||
user.type = 3
|
||||
|
||||
user.save()
|
||||
else:
|
||||
userAccountsLimit = 0
|
||||
websitesLimit = 0
|
||||
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.initWebsitesLimit = websitesLimit
|
||||
user.initUserAccountsLimit = userAccountsLimit
|
||||
user.type = 1
|
||||
|
||||
user.save()
|
||||
user.save()
|
||||
|
||||
data_ret = {'saveStatus': 1, 'error_message': 'None'}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
@@ -362,44 +245,37 @@ def saveModifications(request):
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
def deleteUser(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
|
||||
admin = Administrator.objects.get(pk=userID)
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if admin.type == 3:
|
||||
return HttpResponse("You don't have enough privileges to access this page.")
|
||||
|
||||
if admin.type == 1:
|
||||
admins = Administrator.objects.all()
|
||||
adminNames = []
|
||||
for items in admins:
|
||||
if not items.userName == "admin":
|
||||
adminNames.append(items.userName)
|
||||
if currentACL['admin'] == 1:
|
||||
adminNames = ACLManager.loadDeletionUsers(userID, currentACL)
|
||||
return render(request, 'userManagment/deleteUser.html', {"acctNames": adminNames})
|
||||
elif currentACL['deleteUser'] == 1:
|
||||
adminNames = ACLManager.loadDeletionUsers(userID, currentACL)
|
||||
return render(request, 'userManagment/deleteUser.html', {"acctNames": adminNames})
|
||||
else:
|
||||
admins = Administrator.objects.filter(owner=admin.pk)
|
||||
adminNames = []
|
||||
for items in admins:
|
||||
adminNames.append(items.userName)
|
||||
return ACLManager.loadError()
|
||||
|
||||
|
||||
return render(request, 'userManagment/deleteUser.html',{"acctNames":adminNames})
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def submitUserDeletion(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
userID = request.session['userID']
|
||||
try:
|
||||
|
||||
if request.method == 'POST':
|
||||
data = json.loads(request.body)
|
||||
accountUsername = data['accountUsername']
|
||||
|
||||
admin = Administrator.objects.get(pk=val)
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if admin.type == 1:
|
||||
if currentACL['admin'] == 1:
|
||||
user = Administrator.objects.get(userName=accountUsername)
|
||||
user.delete()
|
||||
|
||||
@@ -422,3 +298,438 @@ def submitUserDeletion(request):
|
||||
data_ret = {'deleteStatus': 0, 'error_message': "Not logged in as admin",}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def createNewACL(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
return render(request, 'userManagment/createACL.html')
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def createACLFunc(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
data = json.loads(request.body)
|
||||
|
||||
## Version Management
|
||||
|
||||
newACL = ACL(name=data['aclName'],
|
||||
adminStatus = int(data['makeAdmin']),
|
||||
|
||||
versionManagement=int(data['versionManagement']),
|
||||
|
||||
## User Management
|
||||
createNewUser = int(data['createNewUser']),
|
||||
resellerCenter = int(data['resellerCenter']),
|
||||
deleteUser = int(data['deleteUser']),
|
||||
changeUserACL= int(data['changeUserACL']),
|
||||
|
||||
## Website Management
|
||||
|
||||
createWebsite = int(data['createWebsite']),
|
||||
modifyWebsite = int(data['modifyWebsite']),
|
||||
suspendWebsite = int(data['suspendWebsite']),
|
||||
deleteWebsite = int(data['deleteWebsite']),
|
||||
|
||||
## Package Management
|
||||
|
||||
createPackage = int(data['createPackage']),
|
||||
deletePackage = int(data['deletePackage']),
|
||||
modifyPackage = int(data['modifyPackage']),
|
||||
|
||||
## Database Management
|
||||
|
||||
createDatabase = int(data['createDatabase']),
|
||||
deleteDatabase = int(data['deleteDatabase']),
|
||||
listDatabases = int(data['listDatabases']),
|
||||
|
||||
## DNS Management
|
||||
|
||||
createNameServer = int(data['createNameServer']),
|
||||
createDNSZone = int(data['createDNSZone']),
|
||||
deleteZone = int(data['deleteZone']),
|
||||
addDeleteRecords = int(data['addDeleteRecords']),
|
||||
|
||||
## Email Management
|
||||
|
||||
createEmail = int(data['createEmail']),
|
||||
deleteEmail = int(data['deleteEmail']),
|
||||
emailForwarding = int(data['emailForwarding']),
|
||||
changeEmailPassword = int(data['changeEmailPassword']),
|
||||
dkimManager = int(data['dkimManager']),
|
||||
|
||||
## FTP Management
|
||||
|
||||
createFTPAccount = int(data['createFTPAccount']),
|
||||
deleteFTPAccount = int(data['deleteFTPAccount']),
|
||||
listFTPAccounts = int(data['listFTPAccounts']),
|
||||
|
||||
## Backup Management
|
||||
|
||||
createBackup = int(data['createBackup']),
|
||||
restoreBackup = int(data['restoreBackup']),
|
||||
addDeleteDestinations = int(data['addDeleteDestinations']),
|
||||
scheDuleBackups = int(data['scheDuleBackups']),
|
||||
remoteBackups = int(data['remoteBackups']),
|
||||
|
||||
## SSL Management
|
||||
|
||||
manageSSL = int(data['manageSSL']),
|
||||
hostnameSSL = int(data['hostnameSSL']),
|
||||
mailServerSSL = int(data['mailServerSSL']),
|
||||
)
|
||||
newACL.save()
|
||||
|
||||
|
||||
|
||||
finalResponse = { 'status': 1}
|
||||
else:
|
||||
finalResponse = ACLManager.loadErrorJson()
|
||||
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status':0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def deleteACL(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
aclNames = ACLManager.findAllACLs()
|
||||
return render(request, 'userManagment/deleteACL.html', {'aclNames' : aclNames})
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def deleteACLFunc(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
data = json.loads(request.body)
|
||||
acl = ACL.objects.get(name=data['aclToBeDeleted'])
|
||||
|
||||
if acl.administrator_set.all().count() == 0:
|
||||
acl.delete()
|
||||
finalResponse = {'status': 1}
|
||||
else:
|
||||
finalResponse = {'status': 0, 'errorMesssage' : 'This ACL is currently in used by existing users.'}
|
||||
else:
|
||||
finalResponse = ACLManager.loadErrorJson()
|
||||
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status':0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def modifyACL(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
aclNames = ACLManager.findAllACLs()
|
||||
return render(request, 'userManagment/modifyACL.html', {'aclNames' : aclNames})
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def fetchACLDetails(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
data = json.loads(request.body)
|
||||
|
||||
## Version Management
|
||||
finalResponse = {}
|
||||
|
||||
acl = ACL.objects.get(name=data['aclToModify'])
|
||||
finalResponse['versionManagement'] = acl.versionManagement
|
||||
finalResponse['adminStatus'] = acl.adminStatus
|
||||
|
||||
## User Management
|
||||
|
||||
finalResponse['createNewUser'] = acl.createNewUser
|
||||
finalResponse['resellerCenter'] = acl.resellerCenter
|
||||
finalResponse['deleteUser'] = acl.deleteUser
|
||||
finalResponse['changeUserACL'] = acl.changeUserACL
|
||||
|
||||
## Website Management
|
||||
|
||||
finalResponse['createWebsite'] = acl.createWebsite
|
||||
finalResponse['modifyWebsite'] = acl.modifyWebsite
|
||||
finalResponse['suspendWebsite'] = acl.suspendWebsite
|
||||
finalResponse['deleteWebsite'] = acl.deleteWebsite
|
||||
|
||||
## Package Management
|
||||
|
||||
|
||||
finalResponse['createPackage'] = acl.createPackage
|
||||
finalResponse['deletePackage'] = acl.deletePackage
|
||||
finalResponse['modifyPackage'] = acl.modifyPackage
|
||||
|
||||
## Database Management
|
||||
|
||||
finalResponse['createDatabase'] = acl.createDatabase
|
||||
finalResponse['deleteDatabase'] = acl.deleteDatabase
|
||||
finalResponse['listDatabases'] = acl.listDatabases
|
||||
|
||||
## DNS Management
|
||||
|
||||
finalResponse['createNameServer'] = acl.createNameServer
|
||||
finalResponse['createDNSZone'] = acl.createDNSZone
|
||||
finalResponse['deleteZone'] = acl.deleteZone
|
||||
finalResponse['addDeleteRecords'] = acl.addDeleteRecords
|
||||
|
||||
## Email Management
|
||||
|
||||
finalResponse['createEmail'] = acl.createEmail
|
||||
finalResponse['deleteEmail'] = acl.deleteEmail
|
||||
finalResponse['emailForwarding'] = acl.emailForwarding
|
||||
finalResponse['changeEmailPassword'] = acl.changeEmailPassword
|
||||
finalResponse['dkimManager'] = acl.dkimManager
|
||||
|
||||
## FTP Management
|
||||
|
||||
finalResponse['createFTPAccount'] = acl.createFTPAccount
|
||||
finalResponse['deleteFTPAccount'] = acl.deleteFTPAccount
|
||||
finalResponse['listFTPAccounts'] = acl.listFTPAccounts
|
||||
|
||||
|
||||
## Backup Management
|
||||
|
||||
finalResponse['createBackup'] = acl.createBackup
|
||||
finalResponse['restoreBackup'] = acl.restoreBackup
|
||||
finalResponse['addDeleteDestinations'] = acl.addDeleteDestinations
|
||||
finalResponse['scheDuleBackups'] = acl.scheDuleBackups
|
||||
finalResponse['remoteBackups'] = acl.remoteBackups
|
||||
|
||||
|
||||
## SSL Management
|
||||
|
||||
finalResponse['manageSSL'] = acl.manageSSL
|
||||
finalResponse['hostnameSSL'] = acl.hostnameSSL
|
||||
finalResponse['mailServerSSL'] = acl.mailServerSSL
|
||||
|
||||
finalResponse['status'] = 1
|
||||
else:
|
||||
finalResponse = ACLManager.loadErrorJson()
|
||||
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status': 0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def submitACLModifications(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
data = json.loads(request.body)
|
||||
|
||||
## Version Management
|
||||
|
||||
acl = ACL.objects.get(name=data['aclToModify'])
|
||||
acl.adminStatus = int(data['adminStatus'])
|
||||
acl.versionManagement = int(data['versionManagement'])
|
||||
|
||||
## User Management
|
||||
|
||||
acl.createNewUser = int(data['createNewUser'])
|
||||
acl.resellerCenter = int(data['resellerCenter'])
|
||||
acl.deleteUser = int(data['deleteUser'])
|
||||
acl.changeUserACL = int(data['changeUserACL'])
|
||||
|
||||
## Website Management
|
||||
|
||||
acl.createWebsite = int(data['createWebsite'])
|
||||
acl.modifyWebsite = int(data['modifyWebsite'])
|
||||
acl.suspendWebsite = int(data['suspendWebsite'])
|
||||
acl.deleteWebsite = int(data['deleteWebsite'])
|
||||
|
||||
## Package Management
|
||||
|
||||
acl.createPackage = int(data['createPackage'])
|
||||
acl.deletePackage = int(data['deletePackage'])
|
||||
acl.modifyPackage = int(data['modifyPackage'])
|
||||
|
||||
## Database Management
|
||||
|
||||
acl.createDatabase = int(data['createDatabase'])
|
||||
acl.deleteDatabase = int(data['deleteDatabase'])
|
||||
acl.listDatabases = int(data['listDatabases'])
|
||||
|
||||
## DNS Management
|
||||
|
||||
acl.createNameServer = int(data['createNameServer'])
|
||||
acl.createDNSZone = int(data['createDNSZone'])
|
||||
acl.deleteZone = int(data['deleteZone'])
|
||||
acl.addDeleteRecords = int(data['addDeleteRecords'])
|
||||
|
||||
## Email Management
|
||||
|
||||
acl.createEmail = int(data['createEmail'])
|
||||
acl.deleteEmail = int(data['deleteEmail'])
|
||||
acl.emailForwarding = int(data['emailForwarding'])
|
||||
acl.changeEmailPassword = int(data['changeEmailPassword'])
|
||||
acl.dkimManager = int(data['dkimManager'])
|
||||
|
||||
## FTP Management
|
||||
|
||||
acl.createFTPAccount = int(data['createFTPAccount'])
|
||||
acl.deleteFTPAccount = int(data['deleteFTPAccount'])
|
||||
acl.listFTPAccounts = int(data['listFTPAccounts'])
|
||||
|
||||
## Backup Management
|
||||
|
||||
acl.createBackup = int(data['createBackup'])
|
||||
acl.restoreBackup = int(data['restoreBackup'])
|
||||
acl.addDeleteDestinations = int(data['addDeleteDestinations'])
|
||||
acl.scheDuleBackups = int(data['scheDuleBackups'])
|
||||
acl.remoteBackups = int(data['remoteBackups'])
|
||||
|
||||
## SSL Management
|
||||
|
||||
acl.manageSSL = int(data['manageSSL'])
|
||||
acl.hostnameSSL = int(data['hostnameSSL'])
|
||||
acl.mailServerSSL = int(data['mailServerSSL'])
|
||||
|
||||
acl.save()
|
||||
|
||||
finalResponse = { 'status': 1}
|
||||
else:
|
||||
finalResponse = ACLManager.loadErrorJson()
|
||||
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status':0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def changeUserACL(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
aclNames = ACLManager.unFileteredACLs()
|
||||
userNames = ACLManager.findAllUsers()
|
||||
return render(request, 'userManagment/changeUserACL.html', {'aclNames' : aclNames, 'usersList': userNames})
|
||||
elif currentACL['changeUserACL'] == 1:
|
||||
aclNames = ACLManager.unFileteredACLs()
|
||||
userNames = ACLManager.findAllUsers()
|
||||
|
||||
return render(request, 'userManagment/changeUserACL.html', {'aclNames': aclNames, 'usersList': userNames})
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def changeACLFunc(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
|
||||
currentACL = ACLManager.loadedACL(val)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
data = json.loads(request.body)
|
||||
selectedACL = ACL.objects.get(name=data['selectedACL'])
|
||||
selectedUser = Administrator.objects.get(userName=data['selectedUser'])
|
||||
|
||||
selectedUser.acl = selectedACL
|
||||
selectedUser.save()
|
||||
|
||||
finalResponse = {'status': 1}
|
||||
elif currentACL['changeUserACL'] == 1:
|
||||
data = json.loads(request.body)
|
||||
selectedACL = ACL.objects.get(name=data['selectedACL'])
|
||||
selectedUser = Administrator.objects.get(userName=data['selectedUser'])
|
||||
|
||||
selectedUser.acl = selectedACL
|
||||
selectedUser.save()
|
||||
|
||||
finalResponse = {'status': 1}
|
||||
else:
|
||||
finalResponse = ACLManager.loadErrorJson()
|
||||
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status':0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def resellerCenter(request):
|
||||
try:
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
userNames = ACLManager.loadDeletionUsers(userID, currentACL)
|
||||
resellerPrivUsers = ACLManager.userWithResellerPriv(userID)
|
||||
return render(request, 'userManagment/resellerCenter.html', {'userToBeModified': userNames, 'resellerPrivUsers': resellerPrivUsers})
|
||||
elif currentACL['resellerCenter'] == 1:
|
||||
userNames = ACLManager.loadDeletionUsers(userID, currentACL)
|
||||
resellerPrivUsers = ACLManager.userWithResellerPriv(userID)
|
||||
return render(request, 'userManagment/resellerCenter.html',{'userToBeModified': userNames, 'resellerPrivUsers': resellerPrivUsers})
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
|
||||
except KeyError:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
def saveResellerChanges(request):
|
||||
try:
|
||||
val = request.session['userID']
|
||||
data = json.loads(request.body)
|
||||
|
||||
userToBeModified = Administrator.objects.get(userName=data['userToBeModified'])
|
||||
newOwner = Administrator.objects.get(userName=data['newOwner'])
|
||||
|
||||
if ACLManager.websitesLimitCheck(newOwner, data['websitesLimit'], userToBeModified) == 0:
|
||||
finalResponse = {'status': 0,
|
||||
'errorMessage': "You've reached maximum websites limit as a reseller."}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
userToBeModified.owner = newOwner.pk
|
||||
userToBeModified.initWebsitesLimit = data['websitesLimit']
|
||||
userToBeModified.save()
|
||||
|
||||
finalResponse = {'status': 1}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
finalResponse = {'status':0, 'errorMessage': str(msg)}
|
||||
json_data = json.dumps(finalResponse)
|
||||
return HttpResponse(json_data)
|
||||
Reference in New Issue
Block a user