Joostina CMS / CMF v2.* API
  • Docs
  • Package
  • Class
  • Tree
  • Todo
Overview

Packages

  • Components
    • Acls
      • Models
        • Admin
        • Site
    • BlogCategory
      • Models
        • Admin
        • Site
    • Blogs
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Coder
      • Controllers
        • Admin
      • Models
        • Admin
    • Comments
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • CommentsCounter
      • Models
        • Admin
        • Site
    • Mainpage
      • Controllers
        • Site
    • News
      • Controllers
        • Admin
        • Site
      • Helpers
      • Models
        • Admin
        • Site
    • Pages
      • Controllers
        • Admin
        • Site
      • Models
        • Site
    • Search
      • Controllers
        • Site
    • Site
      • Controllers
        • Admin
        • Site
    • Sitemap
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
    • Test
      • Controllers
        • Site
    • Torrents
      • Controllers
        • Site
    • Users
      • Controllers
        • Admin
        • Site
      • Models
        • Admin
        • Site
  • Compression
  • Core
    • Libraries
      • Arhive
      • Array
      • Attached
      • Autoadmin
      • Autoloader
      • Benchmark
      • Breadcrumbs
      • Cache
      • Config
      • Cookie
      • Csrf
      • Database
        • Drivers
          • Interfaces
      • Datetime
      • Debug
      • Editor
      • Events
      • File
      • Filter
      • Flashmessage
      • Folder
      • Hit
      • Html
      • Image
      • Inflector
      • Inputfilter
      • Libraries
      • Mail
      • Module
      • Nestedset
      • Pager
      • Pages
      • Params
      • Randomizer
      • Request
      • RobotLoader
      • Route
      • Security
      • Session
      • Static
      • String
      • Text
      • Trash
      • Validate
  • Email
  • Extra
    • Libraries
      • Basket
  • Joostina
    • Controller
    • Core
    • Document
  • JSMin
  • Libraries
    • Extra
      • Basket
        • Models
          • Site
  • None
  • Plugins
    • Autoadmin
    • Editor
    • Sitemap
  • SimpleMail
  • Vendors
    • Libraries
      • Email

Classes

  • actionsAdminUsers
  • actionsAjaxAdminSite
  • actionsAjaxAdminUsers
  1: <?php defined('_JOOS_CORE') or exit();
  2: 
  3: /**
  4:  * Компонент управления пользователями, группами и правами доступа
  5:  * Контроллер панели управления
  6:  *
  7:  * @version    1.0
  8:  * @package    Components\Users
  9:  * @subpackage Controllers\Admin
 10:  * @author     Joostina Team <info@joostina.ru>
 11:  * @copyright  (C) 2007-2012 Joostina Team
 12:  * @license    MIT License http://www.opensource.org/licenses/mit-license.php
 13:  * Информация об авторах и лицензиях стороннего кода в составе Joostina CMS: docs/copyrights
 14:  *
 15:  * */
 16: class actionsAdminUsers extends joosAdminController
 17: {
 18:     /**
 19:      * Подменю
 20:      */
 21:     protected static $submenu = array(
 22:         'default' => array(
 23:             'name' => 'Все пользователи',
 24:             'model' => 'modelAdminUsers',
 25:             'fields' => array('id', 'user_name', 'lastvisit_date', 'state'),
 26:             'active' => false
 27:         ),
 28:         'my_profile_edit' => array(
 29:             'name' => 'Мой профиль',
 30:             'href' => 'index2.php?option=users&menu=my_profile_edit&task=my_profile_edit',
 31:             'model' => 'modelAdminUsers',
 32:             'active' => false
 33:         ),
 34:         'user_groups' => array(
 35:             'name' => 'Группы пользователей',
 36:             'model' => 'modelAdminUsersAclGroups',
 37:             'fields' => array('title'),
 38:             'active' => false
 39:         ),
 40:         'acl_rules_list' => array(
 41:             'name' => 'Права',
 42:             'model' => 'modelAdminUsersAclRules',
 43:             'fields' => array('title'),
 44:             'active' => false
 45:         ),
 46:         'acl_table' => array(
 47:             'name' => 'Рапределение прав',
 48:             'href' => 'index2.php?option=users&menu=acl_table&task=acl_table',
 49:             'model' => false,
 50:             'active' => false
 51:         ),
 52:     );
 53: 
 54:     public static function action_before()
 55:     {
 56:         parent::action_before();
 57: 
 58:         joosDocument::instance()
 59:             ->add_js_file( JPATH_SITE . '/app/components/users/media/js/users.admin.js' );
 60: 
 61:     }
 62: 
 63:     /**
 64:      * Редактирование своих пользовательстких данных
 65:      *
 66:      * @static
 67:      * @return array
 68:      */
 69:     public static function my_profile_edit()
 70:     {
 71:         $current_user = joosCore::user();
 72:         $_GET['id'] = $current_user->id;
 73: 
 74:         return parent::edit();
 75:     }
 76: 
 77:     /**
 78:      * Вывод сводной таблицы расспределения и назначения прав
 79:      *
 80:      * @static
 81:      * @return array
 82:      */
 83:     public static function acl_table()
 84:     {
 85:         $group_obj = new modelUsersAclGroups;
 86:         $groups = $group_obj->find_all( array('select'=>'id,title') );
 87: 
 88:         $acl_list_obj = new modelUsersAclRules;
 89:         $acls = $acl_list_obj->find_all( array('select'=>'id,title,acl_group,acl_name') );
 90: 
 91:         $acl_list = array();
 92:         foreach ($acls as $acl) {
 93:             $acl_list[$acl->acl_group][sprintf('%s::%s', $acl->acl_group, $acl->acl_name)] = $acl;
 94:         }
 95: 
 96:         $acl_groups = array_keys($acl_list);
 97: 
 98:         $sql = 'SELECT ag.id AS group_id, al.id AS list_id FROM  #__users_acl_rules_groups AS aa INNER JOIN #__users_acl_groups AS ag ON ( ag.id=aa.group_id ) INNER JOIN #__users_acl_rules AS al ON ( al.id=aa.task_id )';
 99:         $acl_rules_array = joosDatabase::instance()->set_query($sql)->load_assoc_list();
100: 
101:         $acl_rules = array();
102:         foreach ($acl_rules_array as $value) {
103:             $acl_rules[$value['group_id']][$value['list_id']] = true;
104:         }
105: 
106:         return array(
107:             'groups' => $groups,
108:             'acl_groups' => $acl_groups,
109:             'acl_list' => $acl_list,
110:             'acls' => $acls,
111:             'acl_rules' => $acl_rules
112:         );
113:     }
114: 
115:     public static function get_actions()
116:     {
117:         $location = JPATH_BASE . '/app/components/';
118: 
119:         $Directory = new RecursiveDirectoryIterator($location);
120:         $Iterator = new RecursiveIteratorIterator($Directory);
121:         $Regex = new RegexIterator($Iterator, '/^.+controller.+/i', RecursiveRegexIterator::GET_MATCH);
122: 
123:         $options = array(
124:             'properties' => array(
125:                 'class' => array(
126:                     'methods'
127:                 ),
128:             )
129:         );
130:         $reflect = new PHP_Reflect($options);
131: 
132:         $classes = array();
133:         foreach ($Regex as $path) {
134:             $source = $path[0];
135:             $reflect->scan($source);
136:             $cl = $reflect->getClasses();
137:             foreach ($cl['\\'] as $k => $cc) {
138:                 foreach ($cc['methods'] as $km => $m) {
139:                     $classes[$k . $km] = array(
140:                         'title' => sprintf('%s::%s', $k, $km),
141:                         'acl_group' => $k,
142:                         'acl_name' => $km,
143:                         'created_at' => JCURRENT_SERVER_TIME
144:                     );
145:                 }
146:             }
147:         }
148: 
149:         //_xdump($classes);
150: 
151:         $acls_list = new modelUsersAclRules;
152:         $acls_list->insert_array($classes);
153: 
154:         echo sprintf('Вставлено %s правил', count($classes));
155:     }
156: 
157: }
158: 
Joostina CMS / CMF v2.* API API documentation generated by ApiGen 2.6.1 – Template adapted by @olvlv and Joostina Team