예제 #1
0
 function group($id = '', $back_from = '')
 {
     $data['page_name'] = '<b>Permissions</b>';
     $data['legend'] = '<b>Edit Permissions for Group</b>';
     $data['focus_field'] = '';
     $data['msg'] = '';
     $data['row'] = $g = $this->group->find($id);
     $data['legend'] .= ' "' . $g->name . '"';
     $this->load->config('permissions');
     $data['permissions'] = $this->config->item('permissions');
     $data['group_id'] = $id;
     if ($back_from == 'groups') {
         $data['back_from'] = 'groups';
     }
     //print_r(array_combine($hours = range(0, 23), $hours));
     if (Input::get('op')) {
         if (Input::get('modules')) {
             foreach (Input::get('main_modules') as $module) {
                 $p = new Permission_m();
                 $p->where('group_id', $id);
                 $p->where('module', $module)->get();
                 $p->group_id = $id;
                 $p->module = $module;
                 $p->roles = Input::get($module) ? json_encode(Input::get($module)) : NULL;
                 $p->save();
                 // If no methods selected
                 // Remove the module from permissions table
                 if ($p->roles == NULL) {
                     $p = new Permission_m();
                     $p->where('group_id', $id);
                     $p->where('module', $module)->get();
                     $p->delete();
                 }
             }
             $data['msg'] = 'Permissions has been saved!';
         }
     }
     $data['main_content'] = 'group';
     return View::make('includes/template', $data);
 }
 function up()
 {
     $lgu_code = Setting::getField('lgu_code');
     if ($lgu_code == 'marinduque_province') {
         $u = new User_m();
         $u->where('group_id !=', 1000);
         $users = $u->get();
         foreach ($users as $user) {
             //echo $user->user_type;
             //echo $user->group_id;
             // Lets update the
             $us = new User_m();
             $us->get_by_id($user->id);
             $us->group_id = $user->user_type;
             $us->save();
             // Lets assign permission
             if ($user->group_id == 5) {
                 $p = new Permission_m();
                 $p->where('group_id', $user->group_id);
                 $p->where('module', 'attendance')->get();
                 $p->group_id = $user->group_id;
                 $p->module = 'attendance';
                 $p->roles = json_encode(array('view_attendance', 'dtr'));
                 $p->save();
                 $p = new Permission_m();
                 $p->where('group_id', $user->group_id);
                 $p->where('module', 'leave_manage')->get();
                 $p->group_id = $user->group_id;
                 $p->module = 'leave_manage';
                 $p->roles = json_encode(array('file_leave', 'leave_apps', 'reports'));
                 $p->save();
                 $p = new Permission_m();
                 $p->where('group_id', $user->group_id);
                 $p->where('module', 'manual_manage')->get();
                 $p->group_id = $user->group_id;
                 $p->module = 'manual_manage';
                 $p->roles = json_encode(array('cto', 'cto_apps'));
                 $p->save();
             }
             if ($user->group_id == 3) {
                 $p = new Permission_m();
                 $p->where('group_id', $user->group_id);
                 $p->where('module', 'attendance')->get();
                 $p->group_id = $user->group_id;
                 $p->module = 'attendance';
                 $p->roles = json_encode(array('view_attendance', 'dtr', 'jo', 'double_entries', 'view_absences', 'view_late', 'view_ob', 'view_tardiness', 'view_ten_tardiness'));
                 $p->save();
                 $p = new Permission_m();
                 $p->where('group_id', $user->group_id);
                 $p->where('module', 'manual_manage')->get();
                 $p->group_id = $user->group_id;
                 $p->module = 'manual_manage';
                 $p->roles = json_encode(array('login', 'cto', 'cto_apps', 'cto_forward_balance', 'office_pass'));
                 $p->save();
             }
         }
         if ($this->db->table_exists('groups')) {
             $g = new Group_m();
             $g->get();
             // We will populate only if the groups
             // table is empty
             if (!$g->exists()) {
                 $this->db->order_by('id');
                 $q = $this->db->get('user_group');
                 if ($q->num_rows() > 0) {
                     foreach ($q->result_array() as $row) {
                         $g = new Group_m();
                         $g->name = $row['name'];
                         $g->description = $row['description'];
                         $g->save();
                     }
                 }
             }
         }
     }
 }