added: a new winix function: passwd

for changing your password
       or if you are a super user you can
       change a password for anyone
added: uname prints available plugins now



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@748 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2011-06-27 21:38:19 +00:00
parent 06f42dd9cb
commit eaf10c70b7
32 changed files with 871 additions and 448 deletions

View File

@@ -114,6 +114,31 @@ return status;
Error Db::ChangePass(const std::wstring & login,
const std::wstring & password, const std::string & password_encrypted,
int pass_type, bool pass_hash_salted)
{
query.Clear();
query << R("update core.user set(password, pass_encrypted,"
"pass_type, pass_hash_salted) = (");
// for safety
if( password_encrypted.empty() )
query << password;
else
query << "";
query.EPutBin(password_encrypted);
query << pass_type
<< pass_hash_salted
<< R(") where login=")
<< login
<< R(";");
return DoCommand(query);
}
@@ -633,7 +658,7 @@ Error Db::EditSortIndexItemById(long id, int sort_index)
PGresult * Db::GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel)
void Db::GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel)
{
query << R("select item.id, content_id");
@@ -659,7 +684,7 @@ PGresult * Db::GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query,
}
PGresult * Db::GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query)
void Db::GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query)
{
if( iq.sel_content || iq.sel_file || iq.where_file_type )
query << R(" left join core.content on item.content_id = content.id");
@@ -667,7 +692,7 @@ PGresult * Db::GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query)
PGresult * Db::GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query)
void Db::GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query)
{
if( iq.where_id || iq.where_parent_id || iq.where_type || iq.where_file_type )
{
@@ -716,7 +741,7 @@ PGresult * Db::GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query)
}
PGresult * Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
void Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
{
if( iq.sel_sort_index || iq.sel_date )
{
@@ -741,7 +766,7 @@ PGresult * Db::GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query)
}
PGresult * Db::GetItemsQueryLimit(const DbItemQuery & iq, DbTextStream & query)
void Db::GetItemsQueryLimit(const DbItemQuery & iq, DbTextStream & query)
{
if( iq.limit != 0 )
query << R(" limit ") << iq.limit;

11
db/db.h
View File

@@ -43,6 +43,7 @@ public:
bool GetUserPass(const std::wstring & login, long & user_id, UserPass & up);
Error AddUser(User & user, const std::wstring & password, const std::string & password_encrypted, int pass_type, bool pass_hash_salted);
Error ChangePass(const std::wstring & login, const std::wstring & password, const std::string & password_encrypted, int pass_type, bool pass_hash_salted);
Error AddItem(Item & item);
Error EditItemById(Item & item, bool with_url = true);
@@ -114,11 +115,11 @@ protected:
Error IncrementContentRef(long content_id);
Error DecrementContentRef(long content_id);
PGresult * GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel);
PGresult * GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query);
PGresult * GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query);
PGresult * GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query);
PGresult * GetItemsQueryLimit(const DbItemQuery & iq, DbTextStream & query);
void GetItemsQuerySelect(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel);
void GetItemsQueryJoin(const DbItemQuery & iq, DbTextStream & query);
void GetItemsQueryWhere(const DbItemQuery & iq, DbTextStream & query);
void GetItemsQueryOrder(const DbItemQuery & iq, DbTextStream & query);
void GetItemsQueryLimit(const DbItemQuery & iq, DbTextStream & query);
PGresult * GetItemsQuery(const DbItemQuery & iq, DbTextStream & query, bool skip_other_sel = false);
PGresult * GetItemsQuery(const DbItemQuery & iq, bool skip_other_sel = false);