Esempio n. 1
0
	try {
		$result = $object->couchdb->listDatabases();
	} catch (Exception $exc) {
		print $exc->getMessage();
	}

	//print_r ($result);

	$iTotal = 0;
	$output["iTotalRecords"] = $iTotal;
	$output["iTotalDisplayRecords"] = $iTotal;

	foreach ($result as $aRow) {
		if ($aRow[0] != "_") { // Not _users and _replicator
			try {
				$object->fetch($aRow);
				$info = $object->values;
				$secu = $object->couchAdmin->getSecurity();

				if (count($secu->readers->names) + count($secu->readers->roles) > 0)
					$info->Status = "SECURE";
				else
					$info->Status = "INSECURE";
			} catch (Exception $exc) {
				print $exc->getMessage();
			}

			$output["aaData"][] = $info;
		}
	}
Esempio n. 2
0
$confirm = GETPOST('confirm', 'alpha');
$userid = GETPOST('user', 'alpha');
$groupid = GETPOST('group', 'alpha');

// Security check
$result = restrictedArea($user, 'user', $id, 'usergroup&usergroup', 'user');

$object = new UserDatabase($db);


/**
 *  Action remove group
 */
if ($action == 'confirm_delete' && $confirm == "yes") {
	if ($caneditperms) {
		$object->fetch($id);
		$object->delete();
		Header("Location: index.php");
		exit;
	} else {
		$langs->load("errors");
		$message = '<div class="error">' . $langs->trans('ErrorForbidden') . '</div>';
	}
}

/**
 *  Action add database
 */
if ($action == 'add') {
	if ($caneditperms) {
		$message = "";
Esempio n. 3
0
	/**
	 * 	Charge un objet group avec toutes ces caracteristiques (excpet ->members array)
	 *
	 * 	@param      int		$id     id du groupe a charger
	 * 	@return		int				<0 if KO, >0 if OK
	 */
	function load($id, $loaddb = false) {
		global $conf;

		parent::load($id);

		if ($loaddb) {
			$database = new UserDatabase($this->db);
			try {
				$result = $database->couchdb->listDatabases();
			} catch (Exception $exc) {
				print $exc->getMessage();
			}

			foreach ($result as $aRow) {
				if ($aRow[0] != "_") { // Not _users and _replicator
					try {
						$database->fetch($aRow);
						$info = $database->values;
						$secu = $database->couchAdmin->getSecurity();

						foreach ($secu as $key => $type) {
							if (in_array($this->values->name, $type->roles)) {
								if ($key == "admins")
									$info->Administrator = true;

								$this->databases[] = $info;
							}
						}
					} catch (Exception $exc) {
						print $exc->getMessage();
					}
				}
			}
		}

		return 1;
	}
Esempio n. 4
0
 /**
  * 	Return select list of databases
  *
  *  @param	string	$selected        Id group preselected
  *  @param  string	$htmlname        Field name in form
  *  @param  int		$show_empty      0=liste sans valeur nulle, 1=ajoute valeur inconnue
  *  @param  string	$exclude         Array list of groups id to exclude
  * 	@param	int		$disabled		If select list must be disabled
  *  @param  string	$include         Array list of groups id to include
  * 	@param	int		$enableonly		Array list of groups id to be enabled. All other must be disabled
  *  @return	void
  */
 function select_doldatabases($selected = '', $htmlname = 'databaseid', $show_empty = 0, $exclude = '', $disabled = 0, $include = '', $enableonly = '')
 {
     global $conf, $user, $langs;
     $out = '';
     $object = new UserDatabase($db);
     try {
         $result = $object->couchdb->listDatabases();
     } catch (Exception $exc) {
         print $exc->getMessage();
     }
     if (count($result) && is_array($exclude)) {
         foreach ($result as $key => $obj) {
             if (in_array($obj, $exclude, true)) {
                 unset($result[$key]);
             }
         }
     }
     $i = 0;
     if (count($result)) {
         $out .= '<select class="flat" name="' . $htmlname . '"' . ($disabled ? ' disabled="disabled"' : '') . '>';
         if ($show_empty) {
             $out .= '<option value="-1"' . ($selected == -1 ? ' selected="selected"' : '') . '>&nbsp;</option>' . "\n";
         }
         foreach ($result as $aRow) {
             if ($aRow[0] != "_") {
                 // Not _users and _replicator
                 try {
                     $object->fetch($aRow);
                     $obj = $object->values;
                     $secu = $object->couchAdmin->getSecurity();
                     if (count($secu->admins->names) + count($secu->readers->names) + count($secu->admins->roles) + count($secu->admins->roles) > 0) {
                         $obj->Status = "SECURE";
                     } else {
                         $obj->Status = "INSECURE";
                     }
                 } catch (Exception $exc) {
                     print $exc->getMessage();
                 }
                 $disableline = 0;
                 if (is_array($enableonly) && count($enableonly) && !in_array($obj->db_name, $enableonly)) {
                     $disableline = 1;
                 }
                 $out .= '<option value="' . $obj->db_name . '"';
                 if ($disableline) {
                     $out .= ' disabled="disabled"';
                 }
                 if (is_object($selected) && $selected->id == $obj->db_name || !is_object($selected) && $selected == $obj->db_name) {
                     $out .= ' selected="selected"';
                 }
                 $out .= '>';
                 $out .= $obj->db_name;
                 $out .= '</option>';
                 $i++;
             }
         }
     } else {
         $out .= '<select class="flat" name="' . $htmlname . '" disabled="disabled">';
         $out .= '<option value="">' . $langs->trans("None") . '</option>';
     }
     $out .= '</select>';
     return $out;
 }
Esempio n. 5
0
		}
	} else {
		$langs->load("errors");
		$message = '<div class="error">' . $langs->trans('ErrorForbidden') . '</div>';
	}
}

// Add/Remove database into roles
if ($action == 'adddatabase' || $action == 'removedatabase') {
	if ($caneditperms) {
		if ($databaseid) {

			$object->load($id);
			
			$database = new UserDatabase($db);
			$database->fetch($databaseid);

			if ($action == 'adddatabase') {
				if($_POST['admin'])
					$database->couchAdmin->addDatabaseAdminRole($object->name);
				else
					$database->couchAdmin->addDatabaseReaderRole($object->name);
			}
			if ($action == 'removedatabase') {
				$database->couchAdmin->removeDatabaseAdminRole($object->name);
				$database->couchAdmin->removeDatabaseReaderRole($object->name);
			}

			if ($result > 0) {
				header("Location: fiche.php?id=" . $object->id);
				exit;
Esempio n. 6
0
    /**
     * 	Load a user from database with its id or ref (login)
     *
     * 	@param	string	$id		       		Si defini, id a utiliser pour recherche
     * 	@param  string	$login       		Si defini, login a utiliser pour recherche
     * 	@param  strinf	$sid				Si defini, sid a utiliser pour recherche
     * 	@param	int		$loadpersonalconf	Also load personal conf of user (in $user->conf->xxx)
     * 	@return	int							<0 if KO, 0 not found, >0 if OK
     */
    function fetch($login = "") {
        global $conf;

        // Clean parametersadmin
        $login = trim($login);

        if (empty($login)) {
            //try {
                $login = "******" . $this->couchAdmin->getLoginSession();
            //} catch (Exception $e) {
            //    return 0;
            //}
        }

        try {
            $this->values = $this->couchdb->getDoc($login);
        } catch (Exception $e) {
            return 0;
        }

        // Test if User is a global administrator
        try {
            $admins = $this->couchAdmin->getUserAdmins();
            $name = substr($login, 17); // suppress org.couchdb.user:
            if (isset($admins->$name))
                $this->admin = true;
            else
                $this->admin = false;
        } catch (Exception $e) {
            $this->admin = false;
        }

        try {
            $database = new UserDatabase($this->db);
            $database->fetch($conf->Couchdb->name); // TODO Modify to put it in SESSION
            $result = $database->couchAdmin->getDatabaseAdminUsers(); // Administrateur local de la bd

            if (in_array($this->values->name, $result)) {
                $this->admin = true;
            }
        } catch (Exception $e) {
            
        }

        $this->id = $this->values->_id;
        $this->login = $this->values->name;

        return 1;
    }