public function updateUserPermission($user)
 {
     //获取管理员权限
     $roleService = Beans::get('admin.role.service');
     $permissions = $roleService->getItem($user['role_id']);
     $_SESSION[IAdminService::ADMIN_SESSION_PERMISSION] = cn_json_decode($permissions['permissions']);
 }
 /**
  * 初始化方法
  */
 public function C_start()
 {
     parent::C_start();
     $webApp = WebApplication::getInstance();
     $request = $webApp->getHttpRequest();
     //获取当前登录媒体
     $mediaService = Beans::get("media.media.service");
     $mediaId = $request->getParameter("media_id", 'intval');
     $this->loginMedia = $mediaService->getItem($mediaId);
     $this->mediaConfigs = cn_json_decode($this->loginMedia["configs"]);
     //注册媒体信息
     $this->assign('mediaConfigs', $this->mediaConfigs);
     $this->assign("loginMedia", $this->loginMedia);
     //获取媒体频道列表
     $chanelService = Beans::get("media.chanel.service");
     $chanels = $chanelService->getChanelCache($mediaId);
     $this->assign("chanels", $chanels);
     //底部单页导航
     $artoneService = Beans::get("artone.artone.service");
     $artoneMenu = $artoneService->getMediaArtone($this->loginMedia['id']);
     $this->assign("artoneMenu", $artoneMenu);
     //媒体底部友情链接列表
     $linkService = Beans::get("media.friendlink.service");
     $friendLinks = $linkService->getMediaFriendLinks($mediaId);
     $this->assign("friendLinks", $friendLinks);
     $this->getHotArticles($request);
 }
 /**
  * 更改角色权限
  * @param HttpRequest $request
  */
 public function permission(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     if ($id <= 0) {
         $this->showMessage('danger', '参数不合法!');
     }
     $service = Beans::get($this->getServiceBean());
     $item = $service->getItem($id);
     $permissions = cn_json_decode($item['permissions']);
     //加载权限选项
     $permissionOptions = Loader::config('admin', 'permission');
     $this->assign('permissions', $permissions);
     $this->assign('permissionOptions', $permissionOptions);
     $this->assign('item', $item);
     $this->setView('admin/role_permission');
 }
 /**
  * @see        ICache::get()
  * @param string $key
  * @param null $expire
  * @return bool|mixed|string
  */
 public function get($key)
 {
     $cacheFile = $this->getCacheFile($key);
     //缓存文件不存在
     if (!file_exists($cacheFile)) {
         return false;
     }
     $text = file_get_contents($cacheFile);
     $content = cn_json_decode($text);
     //判断缓存是否过期
     if ($content['expire'] > 0 && time() > filemtime($cacheFile) + $content['expire']) {
         return false;
     } else {
         return $content['data'];
     }
 }
 /**
  * 编辑媒体管理员角色界面
  * @param HttpRequest $request
  */
 public function edit(HttpRequest $request)
 {
     parent::edit($request);
     $item = $this->getTemplateVar('item');
     //获取媒体类型
     $mediaTypeService = Beans::get('media.type.service');
     $mediaType = $mediaTypeService->getItem($item['media_type']);
     $permissionTpl = $mediaType['permission_tpl'];
     //加载权限选项
     $permissions = Loader::config($permissionTpl, 'permission');
     $this->assign('permissions', $permissions);
     $item['permission'] = cn_json_decode($item['permission']);
     $this->assign('item', $item);
     $this->assign("seoTitle", "媒体中心后台管理-角色编辑");
     $this->assign("seoDesc", "角色管理-角色编辑");
     $this->assign("seoKwords", "媒体中心后台管理 角色管理 角色编辑");
     $this->setView('role/add');
 }
 /**
  * 媒体首页
  * @param HttpRequest $request
  */
 public function index(HttpRequest $request)
 {
     $media_id = $request->getParameter("media_id", 'intval');
     $mediaService = Beans::get("media.media.service");
     //初始化当前管理员的操作权限菜单
     $managerService = Beans::get('media.manager.service');
     $menus = $managerService->getUserMenu($this->loginUser['id'], $media_id);
     //获取权限
     $permissions = $managerService->getUserPermission($this->loginUser['id'], $media_id);
     if ($menus == false || empty($menus)) {
         $this->showMessage('error', '警告,您正在非法操作!');
     }
     //注册当前登录媒体
     $this->loginMedia = $mediaService->getItem($media_id);
     $this->loginMedia['menus'] = $menus;
     $this->loginMedia['permission'] = $permissions;
     $this->loginMedia['configs'] = cn_json_decode($this->loginMedia['configs']);
     $mediaService->setLoginMedia($this->loginMedia);
     //获取菜单的第一个页面为默认页面
     $defaultUrl = null;
     foreach ($menus as $value) {
         if ($defaultUrl != null) {
             break;
         }
         if (empty($value)) {
             continue;
         }
         foreach ($value['sub'] as $val) {
             if ($defaultUrl != null) {
                 break;
             }
             $defaultUrl = $val['url'];
         }
     }
     $this->location(url($defaultUrl));
 }
 /**
  * @see \media\service\interfaces\IMediaManagerService::getUserPermission
  */
 public function getUserPermission($userid, $mediaId)
 {
     //1. 不是当前登录媒体的管理员
     $item = $this->getItem("userid={$userid} AND media_id={$mediaId}");
     if (!$item) {
         return false;
     }
     //4. 如果管理员已经被禁用,则直接返回false
     if ($item['status'] == -1) {
         return false;
     }
     //获取管理员角色和权限
     $roleService = Beans::get('media.managerRole.service');
     $role = $roleService->getItem($item['role_id']);
     $permissions = cn_json_decode($role['permission']);
     return $permissions;
 }
 /**
  * 媒体所包含的文章列表
  * @param HttpRequest $request
  */
 public function detail(HttpRequest $request)
 {
     $id = $request->getParameter('id', 'intval');
     $page = $request->getParameter('page', 'intval');
     if ($id <= 0) {
         page404();
     }
     $this->setPage($page);
     //获取文章
     $userService = Beans::get('user.user.service');
     $articleService = Beans::get('article.article.service');
     $mediaService = Beans::get('media.media.service');
     $tagService = Beans::get('article.tags.service');
     $baseCondi = getArticleBasicConditions();
     $condi['media_id'] = $id;
     $condi = array_merge($condi, $baseCondi);
     $items = $articleService->getItems($condi, 'id,title,thumb,add_time,chanel_id, tags,media_id,bcontent', 'add_time DESC', $this->getPage(), $this->getPagesize());
     $cacheInfo = array('baseKey' => 'article', 'ftype' => 'mediadetail', 'factor' => $id . '-' . $page, 'expr' => 300);
     $aricles =& $this->loadArticleInfo($items, ART_INFO_DEFAULT, $cacheInfo);
     $this->assign('items', $aricles);
     //获取分页
     $count = $articleService->count($condi);
     $this->getPageData($count);
     //获取媒体信息
     $mediaInfo = $mediaService->getItem($id, 'id,name,intro,logo');
     $this->assign('mediaInfo', $mediaInfo);
     //获取媒体信息
     $imageClass = 'logo';
     $mediaInfo = $mediaService->getItem($id, "id, name, media_type, nickname, domain, logo, intro");
     $mediaInfo['domain'] = trim($mediaInfo['domain']);
     if ($mediaInfo['domain'] != '') {
         $mediaInfo['domain'] = 'http://www.' . $mediaInfo['domain'];
     } else {
         $mediaInfo['domain'] = url('/site_index_index/?media_id=' . $id);
     }
     $mediaInfo['configs'] = cn_json_decode($mediaInfo['configs']);
     $this->assign('mediaInfo', $mediaInfo);
     //判断媒体类型
     $mediaTypeService = Beans::get('media.type.service');
     $type = $mediaTypeService->getItem($mediaInfo['media_type'], 'tkey');
     if ($type['tkey'] != 'qunmei') {
         $imageClass = 'aside_publish_user';
     }
     $this->assign('imageClass', $imageClass);
     //判断用户是否订阅此媒体
     $loginUser = $userService->getLoginUser();
     $mediaOrdered = 0;
     if ($loginUser) {
         $mediaOrderService = Beans::get('media.order.service');
         $orderCondi = array('userid' => $loginUser['id'], 'media_id' => $id);
         if ($mediaOrderService->getItem($orderCondi)) {
             $mediaOrdered = 1;
         }
     }
     $this->assign('mediaOrdered', $mediaOrdered);
     //获取热点排行文章
     $hotRanks = $articleService->getHotRank(10, 'id,title');
     $this->assign('hotRanks', $hotRanks);
     //获取周排行
     $weekRanks = $articleService->getWeekRank(10, 'id,title');
     $this->assign('weekRanks', $weekRanks);
     //获取编辑推荐的文章
     $editorRec = $articleService->getEditorRecommend(10);
     $this->assign('editorRec', $editorRec);
     //获取推荐媒体信息
     $niulanMedia = $mediaService->getRecommendMedia(4, 'niulan');
     $this->assign('niulanMedia', $niulanMedia);
     //获取热门标签
     $hotTags = $tagService->getHotTags(12);
     $this->assign('hotTags', $hotTags);
     //注册页面seo信息
     $this->assign('seoTitle', $mediaInfo['configs']['sitetitle'] . ' - 驼牛网牛媒体');
     $this->assign('seoKwords', $mediaInfo['configs']['siteseo'] . '驼牛网,牛媒体');
     $this->assign('seoDesc', $mediaInfo['configs']['sitedescription']);
     $this->setView('media_detail');
 }