Esempio n. 1
0
gboolean
pgsql_index_exists (CcnetDB *db, const char *index_name)
{
    char sql[256];

    snprintf (sql, sizeof(sql),
              "SELECT 1 FROM pg_class WHERE relname='%s'",
              index_name);
    return ccnet_db_check_for_existence (db, sql);
}
Esempio n. 2
0
static gboolean
check_group_staff (CcnetDB *db, int group_id, const char *user_name)
{
    char sql[512];

    snprintf (sql, sizeof(sql), "SELECT group_id FROM GroupUser WHERE "
              "group_id = %d AND user_name = '%s' AND is_staff = 1",
              group_id, user_name);

    return ccnet_db_check_for_existence (db, sql);
}
Esempio n. 3
0
int
ccnet_group_manager_is_group_user (CcnetGroupManager *mgr,
                                   int group_id,
                                   const char *user)
{
    CcnetDB *db = mgr->priv->db;
    char sql[512];

    snprintf (sql, sizeof(sql), "SELECT group_id FROM GroupUser "
              "WHERE group_id=%d AND user_name='%s'", group_id, user);
    return ccnet_db_check_for_existence (db, sql);
}
Esempio n. 4
0
static gboolean
check_group_exists (CcnetDB *db, int group_id)
{
    char sql[512];

    if (ccnet_db_type(db) == CCNET_DB_TYPE_PGSQL)
        snprintf (sql, sizeof(sql), "SELECT group_id FROM \"Group\" WHERE "
                  "group_id=%d", group_id);
    else
        snprintf (sql, sizeof(sql), "SELECT group_id FROM `Group` WHERE "
                  "group_id=%d", group_id);

    return ccnet_db_check_for_existence (db, sql);
}
Esempio n. 5
0
int
ccnet_user_manager_validate_emailuser (CcnetUserManager *manager,
                                       const char *email,
                                       const char *passwd)
{
    CcnetDB *db = manager->priv->db;
    char sql[512];
    char hashed_passwd[41];

    hash_password (passwd, hashed_passwd);

#ifdef HAVE_LDAP
    if (manager->use_ldap) {
        CcnetEmailUser *emailuser;

        snprintf (sql, sizeof(sql), 
                  "SELECT id, email, is_staff, is_active, ctime"
                  " FROM EmailUser WHERE email='%s' AND passwd='%s'",
                  email, hashed_passwd);
        if (ccnet_db_foreach_selected_row (db, sql,
                                           get_emailuser_cb, &emailuser) > 0)
        {
            if (ccnet_email_user_get_is_staff(emailuser)) {
                g_object_unref (emailuser);
                return 0;
            }
            g_object_unref (emailuser);
        }

        return ldap_verify_user_password (manager, email, passwd);
    }
#endif

    snprintf (sql, 512, "SELECT email FROM EmailUser WHERE email='%s' AND "
              "passwd='%s'", email, hashed_passwd);
    
    if (ccnet_db_check_for_existence (db, sql))
        return 0;
    return -1;
}