示例#1
0
 /**
  * Assign default permissions to the node
  *
  * @param   \IPS\Node\Model $node
  */
 public function setPermissions(\IPS\Node\Model $node)
 {
     $nodeClass = static::$nodeClass;
     /* Recommended permissions */
     $current = array();
     foreach ($nodeClass::$permissionMap as $k => $v) {
         switch ($k) {
             case 'view':
             case 'read':
                 $current["perm_{$v}"] = '*';
                 break;
             case 'add':
             case 'reply':
             case 'review':
             case 'upload':
             case 'download':
             default:
                 $current["perm_{$v}"] = implode(',', array_keys(\IPS\Member\Group::groups(TRUE, FALSE)));
                 break;
         }
     }
     $_perms = array();
     /* Check for "all" checkboxes */
     foreach ($nodeClass::$permissionMap as $k => $v) {
         if (isset(\IPS\Request::i()->__all[$k])) {
             $_perms[$v] = '*';
         } else {
             $_perms[$v] = array();
         }
     }
     /* Prepare insert */
     $insert = array('app' => $nodeClass::$permApp, 'perm_type' => $nodeClass::$permType, 'perm_type_id' => $node->_id);
     if (isset($current['perm_id'])) {
         $insert['perm_id'] = $current['perm_id'];
     }
     /* Loop groups */
     /*foreach ( $current as $group => $perms )
     		{
     			foreach ( $nodeClass::$permissionMap as $k => $v )
     			{
     				if ( isset( $perms[ $k ] ) and $perms[ $k ] and is_array( $current[ $v ] ) )
     				{
     					$current[ $v ][] = $group;
     				}
     			}
     		}*/
     /* Finalise */
     foreach ($current as $k => $v) {
         $insert[$k] = is_array($v) ? implode($v, ',') : $v;
     }
     /* Delete existing permissions */
     \IPS\Db::i()->delete('core_permission_index', array('app=? AND perm_type=? AND perm_type_id=?', $nodeClass::$permApp, $nodeClass::$permType, $node->_id));
     /* Insert */
     \IPS\Db::i()->insert('core_permission_index', $insert);
 }
示例#2
0
 /**
  * ...
  *
  * @return	void
  */
 protected function manage()
 {
     \IPS\Output::i()->title = \IPS\Member::loggedIn()->language()->addToStack('menu__membermap_membermap_settings');
     \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('jquery/jquery-ui.js', 'membermap', 'interface'));
     \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles, \IPS\Output::i()->js('admin_membermap.js', 'membermap', 'admin'));
     \IPS\Output::i()->cssFiles = array_merge(\IPS\Output::i()->cssFiles, \IPS\Theme::i()->css('jquery-ui.css', 'membermap', 'global'));
     \IPS\Output::i()->jsVars['membermap_mapquestAPI'] = \IPS\membermap\Application::getApiKeys('mapquest');
     $form = new \IPS\Helpers\Form();
     $form->addHeader('api_settings');
     $form->add(new \IPS\Helpers\Form\Text('membermap_mapQuestAPI', \IPS\Settings::i()->membermap_mapQuestAPI, TRUE, array(), NULL, NULL, NULL, 'membermap_mapQuestAPI'));
     if (!empty(\IPS\Settings::i()->membermap_mapQuestAPI)) {
         $form->attributes['data-controller'] = 'membermap.admin.membermap.settings';
         $form->attributes['id'] = 'membermap_form_settings';
         $form->addHeader('map_settings');
         $form->add(new \IPS\Helpers\Form\YesNo('membermap_groupByMemberGroup', \IPS\Settings::i()->membermap_groupByMemberGroup));
         $form->add(new \IPS\Helpers\Form\YesNo('membermap_enable_clustering', \IPS\Settings::i()->membermap_enable_clustering));
         $form->add(new \IPS\Helpers\Form\Text('membermap_bbox_location', \IPS\Settings::i()->membermap_bbox_location, FALSE, array(), NULL, NULL, NULL, 'membermap_bbox_location'));
         $form->add(new \IPS\Helpers\Form\Number('membermap_bbox_zoom', intval(\IPS\Settings::i()->membermap_bbox_zoom), FALSE, array('min' => 1, 'max' => 18)));
         $form->hiddenValues['membermap_bbox'] = \IPS\Settings::i()->membermap_bbox;
         $form->addHeader('membermap_autoUpdate');
         $profileFields = array('' => ' -- ' . \IPS\Member::loggedIn()->language()->addToStack('membermap_profileLocationField') . ' -- ');
         foreach (\IPS\core\ProfileFields\Field::fields(array(), \IPS\core\ProfileFields\Field::PROFILE) as $group => $fields) {
             foreach ($fields as $id => $field) {
                 $profileFields['core_pfieldgroups_' . $group][$id] = $field->name;
             }
         }
         $form->add(new \IPS\Helpers\Form\YesNo('membermap_monitorLocationField', \IPS\Settings::i()->membermap_monitorLocationField, FALSE, array('togglesOn' => array('membermap_profileLocationField', 'membermap_monitorLocationField_groupPerm', 'membermap_syncLocationField'))));
         $form->add(new \IPS\Helpers\Form\Select('membermap_profileLocationField', \IPS\Settings::i()->membermap_profileLocationField ? intval(\IPS\Settings::i()->membermap_profileLocationField) : NULL, FALSE, array('options' => $profileFields), NULL, NULL, NULL, 'membermap_profileLocationField'));
         $form->add(new \IPS\Helpers\Form\Select('membermap_monitorLocationField_groupPerm', \IPS\Settings::i()->membermap_monitorLocationField_groupPerm != '' ? \IPS\Settings::i()->membermap_monitorLocationField_groupPerm === '*' ? '*' : explode(",", \IPS\Settings::i()->membermap_monitorLocationField_groupPerm) : '*', FALSE, array('options' => \IPS\Member\Group::groups(), 'multiple' => TRUE, 'parse' => 'normal', 'unlimited' => '*', 'unlimitedLang' => 'all'), NULL, NULL, NULL, 'membermap_monitorLocationField_groupPerm'));
         $form->add(new \IPS\Helpers\Form\YesNo('membermap_syncLocationField', \IPS\Settings::i()->membermap_syncLocationField, FALSE, array(), NULL, NULL, NULL, 'membermap_syncLocationField'));
     }
     if ($values = $form->values(TRUE)) {
         $values['membermap_bbox'] = \IPS\Request::i()->membermap_bbox;
         if (empty($values['membermap_bbox_location'])) {
             $values['membermap_bbox'] = "";
         }
         \IPS\DB::i()->update('core_tasks', array('enabled' => isset($values['membermap_syncLocationField']) and $values['membermap_syncLocationField'] ? 1 : 0), array('`key`=?', 'locationSync'));
         $form->saveAsSettings($values);
         \IPS\Session::i()->log('acplogs__membermap_settings');
         \IPS\Output::i()->redirect(\IPS\Http\Url::internal("app=membermap&module=membermap&controller=settings"), 'saved');
     }
     \IPS\Output::i()->output = $form;
 }
示例#3
0
 /**
  * Build a generator form for this comment
  *
  * @param   \IPS\faker\Decorators\Form  $form
  * @return  void
  */
 public function buildGenerateForm(&$form)
 {
     $groups = \IPS\Member\Group::groups();
     $groupOpts = array();
     foreach ($groups as $group) {
         $groupOpts[$group->g_id] = $group->name;
     }
     $form->langPrefix = 'core_members_faker_activerecords';
     $form->add(new \IPS\Helpers\Form\NumberRange('record_range', array('start' => 3, 'end' => 5), TRUE, array('start' => array('min' => 1))));
     $form->add(new \IPS\Helpers\Form\Select('member_group', \IPS\Settings::i()->member_group, true, array('options' => $groupOpts)));
     $form->add(new \IPS\Helpers\Form\YesNo('profile_photo', true));
     $form->add(new \IPS\Helpers\Form\YesNo('password'));
 }