Jelszó!

lili_ képe

D5-öt használok, problémám amire megoldást keresnék:

Létrehoztam felhasználói csoportokat:
--->Tanárok
--->Diákok

Mindkét csoporthoz rendeltem felhasználókat is és kiadtam a megfelelő jogosultságokat is.
Azt szeretném kivitelezni, hogy csak a Tanárok csoport közé tartozó userek tudják megváltoztatni a saját jelszavukat, a Diákok közé tartozó felhasználók pedig NE!

aries képe

Ehhez én írnék egy kis modult, ami a hook_user() segítségével kiszedi a kérdéses űrlap-elemeket.

0
0
lili_ képe

részletesebben esetleg ki tudnád fejteni?

0
0

mini

tolmi képe

mkdir passwd_access
touch passwd_access/passwd_access.info:

name = Password Access
description = "Controls who can modify its password"
package = "Access"

touch passwd_access/passwd_access.module:

/**
 *
 */
function passwd_access_perm() {
    return array('allow password change');
}
 
/**
 *
 */
function passwd_access_user($op, &$edit, &$account, $category = NULL) {
    if ($op == "submit" && !user_access('allow password change')) {
	unset($edit['pass']);
    }
}
 
/**
 *
 */
function passwd_access_form_alter($form_id, &$form) {
    if ($form_id == "user_edit" && !user_access('allow password change')) {
	unset($form['account']['pass']);
    }
}

Telepítése után lesz olyan jogosultság hogy allow password change. Értelemszerűen csak azok tudnak jelszót változtatni, akik ezzel a joggal rendelkeznek valamint ofkorsz az admin felhasználó.
0
0

--
Tolmács Márk
Drupal bandita

Sweetchuck képe

Volt itt egy hasonló téma, amiben a #access használatát javasoltam. A te Kung-Fu-d erősebb, ezért az unset() látványa egy kicsit elbizonytalanított.
Van jobbik választás?
Vagy D5 - D6 különbség?

0
0
tolmi képe

Jól mondod, D5-ben nincs #access, én meg nemtom miért reflexből 5-ösre írtam ezt a minimodult. 6-osban nem is működik.

Az #access pedig egyértelműen a tökéletes, uberszuper első helyezett megoldás 6-os alá.

0
0

--
Tolmács Márk
Drupal bandita

tolmi képe

passwd_access.info:

name = Password Access
description = Controls who can modify its password
package = Access
core = 6.x

passwd_access.module:

/**
 *
 */
function passwd_access_perm() {
    return array('allow password change');
}
 
/**
 *
 */
function passwd_access_form_alter(&$form, $form_state, $form_id) {
    if ($form_id = "user_profile_form") {
	$form['account']['pass']['#access'] = user_access('allow password change');
    }
}
0
0

--
Tolmács Márk
Drupal bandita

lili_ képe

kipóbáltam és működik!

nagyon szépen köszönöm!

0
0

mini