Exemplo n.º 1
0
 public function edituser()
 {
     global $user, $db;
     // set history
     expHistory::set('editable', $this->params);
     expSession::set("userkey", sha1(microtime()));
     expSession::clearCurrentUserSessionCache();
     $id = isset($this->params['id']) ? $this->params['id'] : null;
     // check to see if we should be editing.  You either need to be an admin, or
     // editing your own account.
     if ($user->isAdmin() || $user->id == $id) {
         $u = new user($id);
     } else {
         flash('error', gt('You do not have the proper permissions to edit this user'));
         expHistory::back();
     }
     //        $active_extensions = $db->selectColumn('profileextension','classname','active=1', 'rank');
     $active_extensions = $db->selectObjects('profileextension', 'active=1', 'rank');
     //If there is no image uploaded and the system is not in the development mode, use the default avatar
     //		if(empty($u->image) && !DEVELOPMENT) {
     if (empty($u->image)) {
         $u->image = DEFAULT_AVATAR;
     }
     assign_to_template(array('edit_user' => $u, 'extensions' => $active_extensions, "userkey" => expSession::get("userkey")));
 }
Exemplo n.º 2
0
 /**
  * main logout method
  */
 public static function logout()
 {
     expSession::logout();
     expSession::un_set("permissions");
     expSession::un_set('uilevel');
     expSession::clearCurrentUserSessionCache();
     flash('message', gt('You have been logged out'));
     redirect_to(array("section" => SITE_DEFAULT_SECTION));
 }
Exemplo n.º 3
0
 /**
  * copy selected users/groups over from old site
  * @global db the exponent database object
  * @return void
  */
 public function migrate_users()
 {
     global $db;
     if (isset($this->params['wipe_groups'])) {
         $db->delete('group');
         $db->delete('groupmembership');
     }
     if (isset($this->params['wipe_users'])) {
         $db->delete('user', 'id > 1');
     }
     $old_db = $this->connect();
     //		print_r("<pre>");
     //		print_r($old_db->selectAndJoinObjects('', '', 'group', 'groupmembership','id', 'group_id', 'name = "Editors"', ''));
     $gsuccessful = 0;
     $gfailed = 0;
     if (!empty($this->params['groups'])) {
         foreach ($this->params['groups'] as $groupid) {
             $group = $old_db->selectObject('group', 'id=' . $groupid);
             $ret = $db->insertObject($group, 'group');
             if (empty($ret)) {
                 $gfailed += 1;
             } else {
                 $gsuccessful += 1;
             }
         }
     }
     if (!empty($this->params['rep_groups'])) {
         foreach ($this->params['rep_groups'] as $groupid) {
             $db->delete('group', 'id=' . $groupid);
             $group = $old_db->selectObject('group', 'id=' . $groupid);
             $ret = $db->insertObject($group, 'group');
             if (empty($ret)) {
                 $gfailed += 1;
             } else {
                 $gsuccessful += 1;
             }
         }
     }
     $successful = 0;
     $failed = 0;
     if (!empty($this->params['users'])) {
         foreach ($this->params['users'] as $userid) {
             $user = $old_db->selectObject('user', 'id=' . $userid);
             $ret = $db->insertObject($user, 'user');
             if (empty($ret)) {
                 $failed += 1;
             } else {
                 $successful += 1;
             }
         }
     }
     if (!empty($this->params['rep_users'])) {
         foreach ($this->params['rep_users'] as $userid) {
             $db->delete('user', 'id=' . $userid);
             $user = $old_db->selectObject('user', 'id=' . $userid);
             $ret = $db->insertObject($user, 'user');
             if (empty($ret)) {
                 $failed += 1;
             } else {
                 $successful += 1;
             }
         }
     }
     $users = null;
     $groups = null;
     if (!empty($this->params['groups']) && !empty($this->params['rep_groups'])) {
         $groups = array_merge($this->params['groups'], $this->params['rep_groups']);
     } elseif (!empty($this->params['groups'])) {
         $groups = $this->params['groups'];
     } elseif (!empty($this->params['rep_groups'])) {
         $groups = $this->params['rep_groups'];
     }
     if (!empty($this->params['users']) && !empty($this->params['rep_users'])) {
         $users = array_merge($this->params['users'], $this->params['rep_users']);
     } elseif (!empty($this->params['users'])) {
         $users = $this->params['users'];
     } elseif (!empty($this->params['rep_users'])) {
         $users = $this->params['rep_users'];
     }
     if (!empty($groups) && !empty($users)) {
         foreach ($groups as $groupid) {
             $groupmembers = $old_db->selectObjects('groupmembership', 'group_id=' . $groupid);
             foreach ($groupmembers as $userid) {
                 if (in_array($userid->member_id, $users)) {
                     $db->insertObject($userid, 'groupmembership');
                 }
             }
         }
     }
     flash('message', $successful . ' ' . gt('users and') . ' ' . $gsuccessful . ' ' . gt('groups were imported from') . ' ' . $this->config['database']);
     if ($failed > 0 || $gfailed > 0) {
         $msg = '';
         if ($failed > 0) {
             $msg = $failed . ' users ';
         }
         if ($gfailed > 0) {
             if ($msg != '') {
                 $msg .= ' and ';
             }
             $msg .= $gfailed . ' groups ';
         }
         flash('error', $msg . ' ' . gt('could not be imported from') . ' ' . $this->config['database'] . ' ' . gt('This is usually because a user with the username or group with that name already exists in the database you importing to.'));
     }
     expSession::clearCurrentUserSessionCache();
     expHistory::back();
 }
 public static function install_dbtables()
 {
     global $db;
     define('TMP_TABLE_EXISTED', 1);
     define('TMP_TABLE_INSTALLED', 2);
     define('TMP_TABLE_FAILED', 3);
     define('TMP_TABLE_ALTERED', 4);
     expSession::clearCurrentUserSessionCache();
     $tables = array();
     // first the core and 1.0 definitions
     $coredefs = BASE . 'framework/core/definitions';
     if (is_readable($coredefs)) {
         $dh = opendir($coredefs);
         while (($file = readdir($dh)) !== false) {
             if (is_readable("{$coredefs}/{$file}") && is_file("{$coredefs}/{$file}") && substr($file, -4, 4) == ".php" && substr($file, -9, 9) != ".info.php") {
                 $tablename = substr($file, 0, -4);
                 $dd = (include "{$coredefs}/{$file}");
                 $info = null;
                 if (is_readable("{$coredefs}/{$tablename}.info.php")) {
                     $info = (include "{$coredefs}/{$tablename}.info.php");
                 }
                 if (!$db->tableExists($tablename)) {
                     foreach ($db->createTable($tablename, $dd, $info) as $key => $status) {
                         $tables[$key] = $status;
                     }
                 } else {
                     foreach ($db->alterTable($tablename, $dd, $info) as $key => $status) {
                         if (isset($tables[$key])) {
                             echo "{$tablename}, {$key}<br>";
                         }
                         if ($status == TABLE_ALTER_FAILED) {
                             $tables[$key] = $status;
                         } else {
                             $tables[$key] = $status == TABLE_ALTER_NOT_NEEDED ? DATABASE_TABLE_EXISTED : DATABASE_TABLE_ALTERED;
                         }
                     }
                 }
             }
         }
     }
     // then search for module definitions
     $moddefs = array(BASE . 'themes/' . DISPLAY_THEME . '/modules', BASE . "framework/modules");
     foreach ($moddefs as $moddef) {
         if (is_readable($moddef)) {
             $dh = opendir($moddef);
             while (($file = readdir($dh)) !== false) {
                 if (is_dir($moddef . '/' . $file) && ($file != '..' && $file != '.')) {
                     $dirpath = $moddef . '/' . $file . '/definitions';
                     if (file_exists($dirpath)) {
                         $def_dir = opendir($dirpath);
                         while (($def = readdir($def_dir)) !== false) {
                             //							eDebug("$dirpath/$def");
                             if (is_readable("{$dirpath}/{$def}") && is_file("{$dirpath}/{$def}") && substr($def, -4, 4) == ".php" && substr($def, -9, 9) != ".info.php") {
                                 $tablename = substr($def, 0, -4);
                                 $dd = (include "{$dirpath}/{$def}");
                                 $info = null;
                                 if (is_readable("{$dirpath}/{$tablename}.info.php")) {
                                     $info = (include "{$dirpath}/{$tablename}.info.php");
                                 }
                                 if (!$db->tableExists($tablename)) {
                                     foreach ($db->createTable($tablename, $dd, $info) as $key => $status) {
                                         $tables[$key] = $status;
                                     }
                                 } else {
                                     foreach ($db->alterTable($tablename, $dd, $info) as $key => $status) {
                                         if (isset($tables[$key])) {
                                             echo "{$tablename}, {$key}<br>";
                                         }
                                         if ($status == TABLE_ALTER_FAILED) {
                                             $tables[$key] = $status;
                                         } else {
                                             $tables[$key] = $status == TABLE_ALTER_NOT_NEEDED ? DATABASE_TABLE_EXISTED : DATABASE_TABLE_ALTERED;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $tables;
 }