Пример #1
0
 /**
  * ロールマスタの保存が成功したかJSON形式で返す
  * @access public
  * @see Admin_ActionClass::perform()
  */
 function perform()
 {
     // get request params
     $role_id_arr = $this->af->get('role_id_arr');
     // get session params
     $s_user_id = $this->session->get('user_id');
     $company_id = $this->session->get('company_id');
     // dao
     $roleDao = DaoFactory::RoleMst();
     $menuRoleDDao = DaoFactory::MenuRoleD();
     try {
         // begin
         $roleDao->BeginTransaction();
         $params = array('company_id' => $company_id);
         if ($_REQUEST['del'] == 'all') {
             $roleDao->Delete(' company_id = ? ', $params);
             $menuRoleDDao->Delete(' company_id = ? ', $params);
         } else {
             foreach ($role_id_arr as $role_id) {
                 $where = ' company_id = ? AND role_id = ? ';
                 $params['role_id'] = $role_id;
                 $roleDao->Delete($where, $params);
                 $menuRoleDDao->Delete($where, $params);
             }
         }
         // commit
         $roleDao->CommitTransaction();
     } catch (Exception $e) {
         // rollback
         $roleDao->AbortTransaction();
         $this->logger->log(LOG_DEBUG, $e->getTraceAsString());
         return array(500, $e->getMessage());
     }
     exit;
 }
Пример #2
0
 /**
  * ロールマスタの保存が成功したかJSON形式で返す
  * @access public
  * @see Admin_ActionClass::perform()
  */
 function perform()
 {
     // get request params
     $role_name = $this->af->get('role_name');
     $child_menu_id_arr = $this->af->get('child_menu_id_arr');
     // get session params
     $company_id = $this->session->get('company_id');
     $s_user_id = $this->session->get('user_id');
     // dao
     $menuRoleDao = DaoFactory::MenuRoleD();
     $roleMstDao = DaoFactory::RoleMst();
     try {
         // begin
         $menuRoleDao->BeginTransaction();
         // ROLE_MST に insert
         $role_id = intval($roleMstDao->maxByColumn('ROLE_ID', ' company_id = ? ', array('company_id' => $company_id))) + 1;
         $params = array('company_id' => $company_id, 'role_id' => $role_id, 'role_name' => $role_name, 'UID' => $s_user_id, 'PGM' => get_class());
         $roleMstDao->Insert($params);
         if (!empty($child_menu_id_arr)) {
             foreach ($child_menu_id_arr as $top_menu_id => $child_menu_id_list) {
                 foreach ($child_menu_id_list as $key => $menu_id) {
                     $params = array('company_id' => $company_id, 'menu_id' => $menu_id, 'role_id' => $role_id, 'UID' => $s_user_id, 'PGM' => get_class());
                     $menuRoleDao->Insert($params);
                 }
             }
         }
         // commit
         $menuRoleDao->CommitTransaction();
     } catch (Exception $e) {
         $menuRoleDao->AbortTransaction();
         $this->logger->log(LOG_DEBUG, $e->getTraceAsString());
         return array(500, $e->getMessage());
     }
     exit;
 }
 function authenticate()
 {
     // ログインチェック
     $login = new LoginController();
     if (!$login->isLogin()) {
         return array('401', array());
     }
     // get params
     $action = $this->backend->ctl->getCurrentActionName();
     // アクション名を取得
     $kengen_flg = intval($this->session->get('kengen_flg'));
     // 権限取得
     $company_id = $this->session->get('company_id');
     // 会社CD取得
     $role_id = $this->session->get('role_id');
     // ロールID取得
     // 権限フラグチェック
     if ($kengen_flg != Konst::KENGEN_FLG_KANRI && $kengen_flg != Konst::KENGEN_FLG_SUPER) {
         // 管理者ユーザ(8)、スーパーユーザ(9)以外であれば弾く
         $login->Logout();
         return '403';
     }
     // スーパーユーザはロール権限のチェックを行わない
     if ($kengen_flg != Konst::KENGEN_FLG_SUPER) {
         // ロールDとActionNameを比較して有効であれば通す
         $params = array('company_id' => $company_id, 'role_id' => $role_id, 'action_name' => $action);
         $enable = DaoFactory::MenuRoleD()->getCheckEnableRole($params)->fetch();
         if (empty($enable)) {
             return '403';
         }
     }
     $this->setGuideModal();
     $this->checkLicense();
     return null;
 }
 function authenticate()
 {
     $this->af->setApp('app_name', $this->config->get('app_name'));
     // ログインチェック
     $login = new LoginController();
     if (!$login->isLogin()) {
         return 'login';
     }
     // パスワード期限チェック
     $company_id = $this->session->get('company_id');
     $user_id = $this->session->get('user_id');
     $params = array('company_id' => $company_id, 'user_id' => $user_id);
     if (DaoFactory::UserMst()->isExpiredPassword($params)) {
         return 'password_list';
     }
     // get params
     $action = $this->backend->ctl->getCurrentActionName();
     // アクション名を取得
     $kengen_flg = intval($this->session->get('kengen_flg'));
     // 権限取得
     $company_id = $this->session->get('company_id');
     // 会社CD取得
     $role_id = $this->session->get('role_id');
     // ロールID取得
     // 権限フラグチェック
     if ($kengen_flg != Konst::KENGEN_FLG_KANRI && $kengen_flg != Konst::KENGEN_FLG_SUPER) {
         // 管理者ユーザ(8)、スーパーユーザ(9)以外であれば弾く
         $login->Logout();
         return 'login';
     }
     // スーパーユーザはロール権限のチェックを行わない
     if ($kengen_flg != Konst::KENGEN_FLG_SUPER) {
         // ロールD と ActionName を比較して有効であれば通す
         $params = array('company_id' => $company_id, 'role_id' => $role_id, 'action_name' => $action);
         $enable = DaoFactory::MenuRoleD()->getCheckEnableRole($params)->fetch();
         if (empty($enable)) {
             return array('redirect', '?action_error=true');
         }
     }
     // パンくず
     // アクション名からメニューを取得
     $params = array('company_id' => $company_id, 'action_name' => $action);
     $current = DaoFactory::MenuRoleD()->getMenuByActionName($params)->fetch();
     // 取得したメニューから親メニューを取得
     $params = array('company_id' => $company_id, 'menu_id' => $current['PARENT_ID']);
     $parent = DaoFactory::MenuRoleD()->getParentMenuByMenuId($params)->fetch();
     $this->af->setApp('crumbs_root', array_change_key_case((array) $parent));
     $this->af->setApp('crumbs_parent', array_change_key_case((array) $current));
     $locale = $this->session->get('current_locale');
     if ($locale) {
         $this->backend->getController()->setLocale($locale);
     }
     $this->setGuideModal();
     $this->checkLicense();
     return null;
 }
Пример #5
0
 /**
  * ロールマスタの保存が成功したかJSON形式で返す
  * @access public
  * @see Admin_ActionClass::perform()
  */
 function perform()
 {
     // get request params
     $role_id = $this->af->get('role_id');
     $role_name = $this->af->get('role_name');
     $child_menu_id_arr = $this->af->get('child_menu_id_arr');
     // get session params
     $company_id = $this->session->get('company_id');
     $s_user_id = $this->session->get('user_id');
     // dao
     $menuRoleDao = DaoFactory::MenuRoleD();
     $roleMstDao = DaoFactory::RoleMst();
     try {
         // begin
         $menuRoleDao->BeginTransaction();
         // リクエストされたmenu_idを1次元配列に変換する
         $request_menu_id_arr = array();
         if (!empty($child_menu_id_arr)) {
             foreach ($child_menu_id_arr as $key => $child_menu_id_lsit) {
                 foreach ($child_menu_id_lsit as $child_menu) {
                     $request_menu_id_arr[] = $child_menu;
                 }
             }
         }
         $params = array('company_id' => $company_id, 'role_id' => $role_id);
         // exists
         $exists = $roleMstDao->Retrieve(' company_id = ? and role_id = ? ', $params);
         if (empty($exists)) {
             throw new Exception("存在しないロールIDです");
         }
         // delete
         $menuRoleDao->Delete(' company_id = ? and role_id = ? ', $params);
         // insert
         if (!empty($request_menu_id_arr)) {
             foreach ($request_menu_id_arr as $menu_id) {
                 $params = array('company_id' => $company_id, 'menu_id' => $menu_id, 'role_id' => $role_id, 'UID' => $s_user_id, 'PGM' => get_class());
                 $menuRoleDao->Insert($params);
             }
         }
         // role_name update
         $params = array('role_name' => $role_name);
         $roleMstDao->Update($params, ' company_id = ? and role_id = ? ', array('company_id' => $company_id, 'role_id' => $role_id));
         // commit
         $menuRoleDao->CommitTransaction();
     } catch (Exception $e) {
         $menuRoleDao->AbortTransaction();
         $this->logger->log(LOG_DEBUG, $e->getTraceAsString());
         return array(500, $e->getMessage());
     }
     exit;
 }
Пример #6
0
 public function _setDefault(&$renderer)
 {
     // get session params
     $company_id = $this->session->get('company_id');
     $user_id = $this->session->get('user_id');
     $kengen_flg = $this->session->get('kengen_flg');
     // su?
     if ($kengen_flg == Konst::KENGEN_FLG_SUPER) {
         // get menu mst
         $top_menu = DaoFactory::MenuMst()->Select(' company_id = ? and parent_id is null ORDER BY MENU_ID ', array('company_id' => $company_id))->fetchAll();
         // get menu
         $global_menu = array();
         foreach ($top_menu as $menu) {
             $params = array('company_id' => $company_id, 'parent_id' => $menu['MENU_ID']);
             $child_menu = DaoFactory::MenuMst()->Select(' company_id = ? AND parent_id = ? ORDER BY MENU_ID ', $params)->fetchAll();
             if (!empty($child_menu)) {
                 $global_menu[$menu['MENU_ID']]['child_menu'] = $child_menu;
                 $global_menu[$menu['MENU_ID']]['top_menu_name'] = $menu['MENU_NAME'];
             }
         }
     } else {
         // get user
         $params = array('company_id' => $company_id, 'user_id' => $user_id);
         $user = DaoFactory::UserMst()->Retrieve(' company_id = ? and user_id = ? and del_flg = 0 ', $params);
         $user_role_id = $user['ROLE_ID'];
         // get menu mst
         $top_menu = DaoFactory::MenuMst()->Select(' company_id = ? and parent_id is null ORDER BY MENU_ID ', array('company_id' => $company_id))->fetchAll();
         // get menu
         $global_menu = array();
         foreach ($top_menu as $menu) {
             $params = array('company_id' => $company_id, 'role_id' => $user_role_id, 'parent_id' => $menu['MENU_ID']);
             $child_menu = DaoFactory::MenuRoleD()->getMenuRoleDAtParentIdByRoleIdAndParentId($params)->fetchAll();
             if (!empty($child_menu)) {
                 $global_menu[$menu['MENU_ID']]['child_menu'] = $child_menu;
                 $global_menu[$menu['MENU_ID']]['top_menu_name'] = $menu['MENU_NAME'];
             }
         }
     }
     // Renderer からテンプレートエンジンを取得
     $smarty =& $renderer->getEngine();
     $smarty->assign('global_menu', $global_menu);
 }