Skip to content

Commit

Permalink
update user groups permissions
Browse files Browse the repository at this point in the history
  • Loading branch information
Jibigopi committed May 20, 2014
1 parent 2e55717 commit 02b959b
Show file tree
Hide file tree
Showing 6 changed files with 240 additions and 99 deletions.
113 changes: 92 additions & 21 deletions application/modules/user_groups/controllers/user_groups.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,37 +79,107 @@ function user_groups_data_table(){
}


function update_customer_category(){
if($this->session->userdata['customer_category_per']['edit']==1){
if($this->input->post('customer_category')){
$this->form_validation->set_rules('customer_category',$this->lang->line('customer_category'),'required');
function add_user_groups(){
if($this->session->userdata['user_groups_per']['add']==1){
$this->form_validation->set_rules('user_groups',$this->lang->line('user_groups'),'required');
$this->form_validation->set_rules('module_name',$this->lang->line('module_name'),'required');
$this->form_validation->set_rules('module_id',$this->lang->line('module_id'),'required');
if ( $this->form_validation->run() !== false ) {
$id= $this->input->post('guid');
$name=$this->input->post('customer_category');
$discount=$this->input->post('discount');
$where=array('guid !='=>$id,'group_name'=>$name);
if($this->posnic->check_record_unique($where,'customer_category')){
$value=array('group_name'=>$name,'discount'=>$discount);
$update_where=array('guid'=>$id);
$this->posnic->posnic_update_record($value,$update_where,'customer_category');
echo 'TRUE';

$name=$this->input->post('user_groups');
$where=array('group_name'=>$name);
if($this->posnic->check_record_unique($where,'user_groups')){
$value=array('group_name'=>$name);

$guid= $this->posnic->posnic_add_record($value,'user_groups');

$data=$this->input->post('module_name');
$module=$this->input->post('module_id');
for($i=0;$i< count($module);$i++){
$this->config->load($data[$i]."/posnic");
$acl_list = $this->config->item('M_ACL');
$per="";
for($j=0;$j<count($acl_list);$j++){

if(!$this->input->post($data[$i]."_".$acl_list[$j])){

$per='0'.$per;
}else{
$per='1'.$per;
}
}
$this->load->model('groups');
$this->groups->add_module_permission($guid,$per,$module[$i]);

}



echo 'TRUEsgs';
}else{
echo "ALREADY";
}
}else{
echo "FALSE";
}

}else{
echo "NOOP";
}
}
function update_user_groups(){
if($this->session->userdata['user_groups_per']['edit']==1){
$this->form_validation->set_rules('user_groups',$this->lang->line('user_groups'),'required');
$this->form_validation->set_rules('guid',$this->lang->line('guid'),'required');
$this->form_validation->set_rules('module_name',$this->lang->line('module_name'),'required');
$this->form_validation->set_rules('module_id',$this->lang->line('module_id'),'required');
if ( $this->form_validation->run() !== false ) {
$guid=$this->input->post('guid');
$name=$this->input->post('user_groups');
$where=array('guid !='=>$guid,'group_name'=>$name);
if($this->posnic->check_record_unique($where,'user_groups')){
$value=array('group_name'=>$name);
$update=array('guid'=>$guid);
$this->posnic->posnic_update_record($value,$update,'user_groups');

$data=$this->input->post('module_name');
$module=$this->input->post('module_id');
for($i=0;$i< count($module);$i++){
$this->config->load($data[$i]."/posnic");
$acl_list = $this->config->item('M_ACL');
$per="";
for($j=0;$j<count($acl_list);$j++){

if(!$this->input->post($data[$i]."_".$acl_list[$j])){

$per='0'.$per;
}else{
$per='1'.$per;
}
}
$this->load->model('groups');
$this->groups->update_module_permission($guid,$per,$module[$i]);

}



echo 'TRUEsgs';
}else{
echo "ALREADY";
}
}else{
echo "FALSE";
}
}

}else{
echo "NOOP";
}
}

function active(){
$id= $this->input->post('guid');
$report= $this->posnic->posnic_module_active($id,'customer_category');
$report= $this->posnic->posnic_module_active($id,'user_groups');
if (!$report['error']) {
echo 'TRUE';
} else {
Expand All @@ -118,16 +188,17 @@ function active(){
}
function deactive(){
$id= $this->input->post('guid');
$report= $this->posnic->posnic_module_deactive($id,'customer_category');
$report= $this->posnic->posnic_module_deactive($id,'user_groups');
if (!$report['error']) {
echo 'TRUE';
} else {
echo 'FALSE';
}
}
function edit_customer_category($guid){
if($this->session->userdata['customer_category_per']['edit']==1){
$data= $this->posnic->get_module_details_for_update($guid,'customer_category');
function edit_user_groups($guid){
if($this->session->userdata['user_groups_per']['edit']==1){
$this->load->model('groups');
$data= $this->groups->get_user_groups($guid);
echo json_encode($data);
}else{
echo 'FALSE';
Expand All @@ -136,10 +207,10 @@ function edit_customer_category($guid){


function delete(){
if($this->session->userdata['customer_category_per']['delete']==1){
if($this->session->userdata['user_groups_per']['delete']==1){
if($this->input->post('guid')){
$guid= $this->input->post('guid');
$this->posnic->posnic_delete($guid,'customer_category');
$this->posnic->posnic_delete($guid,'user_groups');
echo 'TRUE';
}
}else{
Expand Down
74 changes: 74 additions & 0 deletions application/modules/user_groups/models/groups.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,91 @@ function get_modules(){
foreach ($sql->result_array() as $row){
$this->config->load($row['module_name']."/posnic");
$acl_list = $this->config->item('M_ACL');
$permission=$acl_list;
if($row['guid']!=NULL){
$module=$row['module_name'];
$row['module_name']= $this->lang->line($row['module_name']);
for($j=0;$j<count($acl_list);$j++){
$acl_list[$j]=$this->lang->line($acl_list[$j]);
}
$data[$i][0]=$row;
$data[$i][1]=$acl_list;
$data[$i][2]=$module;
$data[$i][3]=$permission;
$i++;
}
}
return $data;
}
function add_module_permission($guid,$per,$module){
$this->db->insert('modules_x_permissions',array('permission'=>$per,'branch_id'=>$this->session->userdata('branch_id'),'module_id'=>$module,'user_group_id'=>$guid));
$id= $this->db->insert_id();
$this->db->where('id',$id);
$this->db->update('modules_x_permissions',array('guid'=>md5('modules_x_permissions'.$id)));
}
function update_module_permission($guid,$per,$module){
$this->db->select('id')->from('modules_x_permissions')->where('user_group_id',$guid)->where('branch_id',$this->session->userdata('branch_id'))->where('module_id',$module);
$sql= $this->db->get();
if($sql->num_rows()>0){
$this->db->where(array('user_group_id'=>$guid,'branch_id'=>$this->session->userdata('branch_id'),'module_id'=>$module));
$this->db->update('modules_x_permissions',array('permission'=>$per));
}else{
$this->db->insert('modules_x_permissions',array('permission'=>$per,'branch_id'=>$this->session->userdata('branch_id'),'module_id'=>$module,'user_group_id'=>$guid));
$id= $this->db->insert_id();
$this->db->where('id',$id);
$this->db->update('modules_x_permissions',array('guid'=>md5('modules_x_permissions'.$id)));
}
}
function get_user_groups($guid){

$this->db->select('modules.module_name,modules.guid,modules_x_permissions.module_id,modules_x_permissions.permission,user_groups.group_name')->from('modules_x_branches')->where('modules_x_branches.branch_id', $this->session->userdata('branch_id'))->where('modules_x_branches.active_status',1)->where('modules_x_branches.delete_status',0);
$this->db->join('modules','modules.guid=modules_x_branches.module_id','left');
$this->db->join('modules_x_permissions',"modules_x_permissions.module_id=modules_x_branches.module_id AND modules_x_permissions.user_group_id ='$guid'",'left');
$this->db->join('user_groups',"user_groups.guid=modules_x_permissions.user_group_id OR user_groups.guid='$guid'",'left');
$sql= $this->db->get();

$data=array();
$i=0;
foreach ($sql->result_array() as $row){
$this->config->load($row['module_name']."/posnic");
$acl_list = $this->config->item('M_ACL');
$origin=$acl_list;
if($row['guid']!=NULL){
$module=$row['module_name'];
$row['module_name']= $this->lang->line($row['module_name']);

$permission=array();

for($j=0;$j<count($acl_list);$j++){

$per_v= substr($row['permission'],$j,1);
if($per_v=="" or $per_v==0){
$second_array = array("$acl_list[$j]" => 0);
$permission = array_merge((array)$permission, (array)$second_array);
}else{
$second_array = array("$acl_list[$j]" => 1);
$permission = array_merge((array)$permission, (array)$second_array);

}
$acl_list[$j]=$this->lang->line($acl_list[$j]);
}

$permission = array_merge((array)$permission, (array)$second_array);

$data[$i][0]=$row;
$data[$i][1]=$acl_list;
$data[$i][2]=$module;
$data[$i][3]=$origin;
$data[$i][4]=$permission;
$i++;

}



}

return $data;
}
}
?>
69 changes: 59 additions & 10 deletions application/modules/user_groups/views/header/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,12 @@
$(document).ready( function () {

$('#add_user_groups_form').hide();
$('#edit_user_groups_form').hide();
posnic_table();
add_user_groups.onsubmit=function()
{
return false;
}
parsley_reg.onsubmit=function()
{
return false;
}


} );

Expand Down Expand Up @@ -137,7 +133,9 @@ function posnic_active(guid){
});
}
function edit_function(guid){
$("#parsley_reg").trigger('reset');
$("#add_user_groups").trigger('reset');
$('#permissions').remove();
$('#parent_permission').append('<div id="permissions"/>');
<?php if($this->session->userdata['user_groups_per']['edit']==1){ ?>
$.ajax({
url: "<?php echo base_url() ?>index.php/user_groups/edit_user_groups/"+guid,
Expand All @@ -146,16 +144,67 @@ function edit_function(guid){
success: function(data)
{
$("#user_list").hide();
$('#edit_user_groups_form').show('slow');
$('#add_user_groups_form').show('slow');
$('#delete').attr("disabled", "disabled");
$('#posnic_add_user_groups').attr("disabled", "disabled");
$('#active').attr("disabled", "disabled");
$('#deactive').attr("disabled", "disabled");
$('#user_groups_lists').removeAttr("disabled");
$('#parsley_reg #guid').val(data[0]['guid']);
$('#parsley_reg #user_groups').val(data[0]['group_name']);
$('#parsley_reg #discount').val(data[0]['discount']);
$('#add_user_groups #guid').val(guid);
$('#add_user_groups #user_groups').val(data[0][0]['group_name']);

for(var i=0;i<data.length;i++){
var module_row;

if(i%6==0){
module_row='mod_row_'+data[i][0]['guid'];
$('#permissions').append('<div class="row" id="'+module_row+'" />');
}

$('#'+module_row).append('<div class="col col-lg-2" id="mod_col_'+data[i][0]['guid']+'" >\n\
<div class="row text-center" style="border-bottom:solid 3px #48AC2E;margin:10px -3px">\n\
<lablel >'+data[i][0]['module_name']+'</lablel>\n\
</div><input type="hidden" name="module_name[]" value="'+data[i][2]+'"><input type="hidden" name="module_id[]" value="'+data[i][0]['guid']+'"></div>');
for(var j=0;j<data[i][1].length;j++){

if(data[i][4][data[i][3][j]]==1){
$('#'+module_row+' #mod_col_'+data[i][0]['guid']).append('<div class="row">\n\
<div class="col col-lg-6">\n\
<lablel>'+data[i][1][j]+'</lablel>\n\
</div>\n\
<div class="col col-lg-6">\n\
<input type="checkbox" name="'+data[i][2]+'_'+data[i][3][j]+'" checked id="permission_'+j+data[i][0]['guid']+'"> \n\
</div>\n\
</div>');


// $('#permissions').append('<div class="col col-lg-4"><div class="make-switch switch-mini " data-on-label='<i class="icon icon-ok"></i>' data-off-label='<i class="success icon icon-off"></i>'><input type="checkbox" checked></div></div>')
// $('#permissions').append('<div class="col col-lg-4"><input type="checkbox" checked id="create-switch"></div>')
$('#permission_'+j+data[i][0]['guid']).wrap('<div class="make-switch switch-mini" data-on-label="'+"<i class='icon icon-ok'></i>"+'" data-off-label="'+"<i class='icon icon-off'></i>"+'" />').parent().bootstrapSwitch();


}else{
$('#'+module_row+' #mod_col_'+data[i][0]['guid']).append('<div class="row">\n\
<div class="col col-lg-6">\n\
<lablel>'+data[i][1][j]+'</lablel>\n\
</div>\n\
<div class="col col-lg-6">\n\
<input type="checkbox" name="'+data[i][2]+'_'+data[i][3][j]+'" id="permission_'+j+data[i][0]['guid']+'"> \n\
</div>\n\
</div>');


// $('#permissions').append('<div class="col col-lg-4"><div class="make-switch switch-mini " data-on-label='<i class="icon icon-ok"></i>' data-off-label='<i class="success icon icon-off"></i>'><input type="checkbox" checked></div></div>')
// $('#permissions').append('<div class="col col-lg-4"><input type="checkbox" checked id="create-switch"></div>')
$('#permission_'+j+data[i][0]['guid']).wrap('<div class="make-switch switch-mini" data-on-label="'+"<i class='icon icon-ok'></i>"+'" data-off-label="'+"<i class='icon icon-off'></i>"+'" />').parent().bootstrapSwitch();

}

}
}



}
});

Expand Down
Loading

0 comments on commit 02b959b

Please sign in to comment.