Add proper validation for module grants (issue #87)

This commit is contained in:
jekkos committed 2015-06-23 23:32:56 +02:00
1 parent df7907fb8f
commit fc5f097820
14 files changed
+36 -37

No files matched your search

@@ -25,3 +25,4 @@ $lang["employees_update"] = "Update Employee";
$lang["employees_username"] = "Username";
$lang["employees_username_minlength"] = "The username must be at least 5 characters";
$lang["employees_username_required"] = "Username is a required field";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Actualizar Empleado";
$lang["employees_username"] = "Usuario";
$lang["employees_username_minlength"] = "El Usuario debe tener, por lo menos, 5 caracteres";
$lang["employees_username_required"] = "Usuario es requerido";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Éditer Employé";
$lang["employees_username"] = "Nom d\'utilisateur";
$lang["employees_username_minlength"] = "Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères";
$lang["employees_username_required"] = "Le Nom d\'utilisateur est requis";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Ubah Karyawan";
$lang["employees_username"] = "Nama Pengguna";
$lang["employees_username_minlength"] = "Nama Pengguna minimal 5 huruf";
$lang["employees_username_required"] = "Nama Pengguna wajib diisi";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Update Werknemer";
$lang["employees_username"] = "Gebruikersnaam";
$lang["employees_username_minlength"] = "Gebruikersnaam moet minstens 5 characters lang zijn";
$lang["employees_username_required"] = "Gebruikersnaam moet ingevuld worden";
$lang["employees_subpermission_required"] = "Selecteer minstens ‚‚n permissie voor elke module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Обновлять Сотрудник";
$lang["employees_username"] = "Имя пользователя";
$lang["employees_username_minlength"] = "Имя пользователя должна быть не менее 5 символов";
$lang["employees_username_required"] = "Имя пользователи обязательный пробел";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "แก้ไขข้อมูลพนักงา
$lang["employees_username"] = "Username";
$lang["employees_username_minlength"] = "ชื่อผู้ใช้งานต้องยาวเกิน 5 อักษร";
$lang["employees_username_required"] = "จำเป็นต้องกรอกชื่อผู้ใช้งาน";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "Personeli Güncelle";
$lang["employees_username"] = "Kullandı Adı";
$lang["employees_username_minlength"] = "Kullanıcı Adı en az 5 karakter olmalıdır";
$lang["employees_username_required"] = "Kullanıcı Adı zorunlu alandır";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
@@ -25,3 +25,4 @@ $lang["employees_update"] = "更新員工";
$lang["employees_username"] = "帳號";
$lang["employees_username_minlength"] = "帳號必需為五個字元以上";
$lang["employees_username_required"] = "帳號為必填";
$lang["employees_subpermission_required"] = "Add at least one grant for each module";
+21 -32
View File
@@ -56,7 +56,7 @@ foreach($all_modules->result() as $module)
{
?>
<li>
<?php echo form_checkbox("grants[]",$module->module_id,$this->Employee->has_grant($module->module_id,$person_info->person_id)); ?>
<?php echo form_checkbox("grants[]",$module->module_id,$this->Employee->has_grant($module->module_id,$person_info->person_id),"class='module'"); ?>
<span class="medium"><?php echo $this->lang->line('module_'.$module->module_id);?>:</span>
<span class="small"><?php echo $this->lang->line('module_'.$module->module_id.'_desc');?></span>
<?php
@@ -104,6 +104,21 @@ echo form_close();
//validation and submit handling
$(document).ready(function()
{
$.validator.addMethod("module", function (value, element) {
var result = true;
$(".module").each(function(index, element)
{
var parent = $(element).parent();
var checked = $(element).is(":checked");
if ($("ul", parent).length > 0 && result)
{
result &= !checked || (checked && $("ul > li > input:checked", parent).length > 0);
}
});
return result;
}, '<?php echo $this->lang->line('employees_subpermission_required'); ?>');
$("ul#permission_list > li > input[name='grants[]']").each(function()
{
var $this = $(this);
@@ -112,16 +127,13 @@ $(document).ready(function()
var $that = $(this);
var updateCheckboxes = function (checked)
{
if (checked) {
$that.removeAttr("disabled");
} else {
$that.attr("disabled", "disabled");
$that.removeAttr("checked", "");
}
$that.prop("disabled", !checked);
!checked && $that.prop("checked", false);
}
$this.change(function() {
updateCheckboxes($this.is(":checked"));
});
updateCheckboxes($this.is(":checked"));
});
});
@@ -166,29 +178,7 @@ $(document).ready(function()
{
equalTo: "#password"
},
email: "email",
"grants[]" : {
required : function(element) {
var checked = false;
$("ul#permission_list > li > input:checkbox").each(function()
{
if ($(this).is(":checked")) {
var has_children = false;
$("ul > li > input:checkbox", $(this).parent()).each(function()
{
has_children = true;
checked |= $(this).is(":checked");
});
if (has_children && !checked)
{
return false;
}
}
});
return !checked;
},
minlength: 1
}
email: "email"
},
messages:
{
@@ -216,8 +206,7 @@ $(document).ready(function()
{
equalTo: "<?php echo $this->lang->line('employees_password_must_match'); ?>"
},
email: "<?php echo $this->lang->line('common_email_invalid_format'); ?>",
"grants[]": "fill in correctly!!"
email: "<?php echo $this->lang->line('common_email_invalid_format'); ?>"
}
});
});
+1 -1
View File
@@ -12716,7 +12716,7 @@ function set_feedback(text, classname, keep_displayed)
;(function($){
//keylisteners
$.each(['customers', 'items', 'reports', 'receivings', 'sales', 'employees', 'config', 'giftcards'], function(key, value) {
$.each(['customers', 'items', 'reports', 'receivings', 'sales'], function(key, value) {
$(window).jkey('f' + (key+1), function(){
window.location = BASE_URL + '/' + value + '/index';
});
+3 -3
View File
File diff suppressed because one or more lines are too long.
+1 -1
View File
@@ -38,7 +38,7 @@ function set_feedback(text, classname, keep_displayed)
;(function($){
//keylisteners
$.each(['customers', 'items', 'reports', 'receivings', 'sales', 'employees', 'config', 'giftcards'], function(key, value) {
$.each(['customers', 'items', 'reports', 'receivings', 'sales'], function(key, value) {
$(window).jkey('f' + (key+1), function(){
window.location = BASE_URL + '/' + value + '/index';
});
+1
View File
@@ -24,3 +24,4 @@ employees_update,Update Werknemer,Actualizar Empleado,Update Employee,Éditer Em
employees_username,Gebruikersnaam,Usuario,Username,Nom d\'utilisateur,帳號,Им� пользовател�,Username,Kullandı Adı,Nama Pengguna
employees_username_minlength,Gebruikersnaam moet minstens 5 characters lang zijn,"El Usuario debe tener, por lo menos, 5 caracteres",The username must be at least 5 characters,Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères,帳號必需為五個字元以上,Им� пользовател� должна быть не менее 5 �имволов,ชื่อผู้ใช้งานต้องยาวเ�ิน 5 อั�ษร,Kullanıcı Adı en az 5 karakter olmalıdır,Nama Pengguna minimal 5 huruf
employees_username_required,Gebruikersnaam moet ingevuld worden,Usuario es requerido,Username is a required field,Le Nom d\'utilisateur est requis,帳號為必填,Им� пользователи об�зательный пробел,จำเป็นต้อง�รอ�ชื่อผู้ใช้งาน,Kullanıcı Adı zorunlu alandır,Nama Pengguna wajib diisi
employees_subpermission_required,Selecteer minstens ‚‚n permissie voor elke module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module,Add at least one grant for each module
1 label nl-BE es en fr zh ru th tr id
24 employees_username Gebruikersnaam Usuario Username Nom d\'utilisateur 帳號 帳號 Имя пользователя ИмÑ� пользователÑ� Username Kullandı Adı Kullandı Adı Nama Pengguna
25 employees_username_minlength Gebruikersnaam moet minstens 5 characters lang zijn El Usuario debe tener, por lo menos, 5 caracteres The username must be at least 5 characters Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères Le Nom d\'utilisateur doit etre long d\'au moins 5 caractères 帳號必需為五個字元以上 帳號必需為五個字元以上 Имя пользователя должна быть не менее 5 символов ИмÑ� пользователÑ� должна быть не менее 5 Ñ�имволов ชื่อผู้ใช้งานต้องยาวเกิน 5 อักษร ชื่อผู้ใช้งานต้องยาวเà¸�ิน 5 อัà¸�ษร Kullanıcı Adı en az 5 karakter olmalıdır Kullanıcı Adı en az 5 karakter olmalıdır Nama Pengguna minimal 5 huruf
26 employees_username_required Gebruikersnaam moet ingevuld worden Usuario es requerido Username is a required field Le Nom d\'utilisateur est requis 帳號為必填 帳號為必填 Имя пользователи обязательный пробел ИмÑ� пользователи обÑ�зательный пробел จำเป็นต้องกรอกชื่อผู้ใช้งาน จำเป็นต้องà¸�รอà¸�ชื่อผู้ใช้งาน Kullanıcı Adı zorunlu alandır Kullanıcı Adı zorunlu alandır Nama Pengguna wajib diisi
27 employees_subpermission_required Selecteer minstens ‚‚n permissie voor elke module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module Add at least one grant for each module