`

修改用户当前密码流程(调用系统表单)

 
阅读更多
function my_form_menu() {

  $items['user/%user/password'] = array(
    'title' => '修改密码',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('change_user_pass',1),
    'access callback' => 'user_edit_access',
    'access arguments' => array(1),
    'weight' => 0,
    'type' => MENU_LOCAL_TASK,
  );
  return $items;
}
function change_user_pass($form, &$form_state, $account) {
  $category = 'account';

  if (!isset($form_state['user'])) {
    $form_state['user'] = $account;
  }
  else {
    $account = $form_state['user'];
  }
  $form['#user'] = $account;
  $form['#user_category'] = $category;

  user_account_form($form, $form_state);
  $langcode = entity_language('user', $account);
  
  unset($form['account']['current_pass']['#description']);
  unset($form['account']['pass']['#description']);
  $form['account']['mail']['#access'] = FALSE;

  $form['actions'] = array('#type' => 'actions');
  $form['actions']['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );

  return $form;
}

function  change_user_pass_submit($form, &$form_state) {

  $account = $form_state['user'];
  $edit_user = array(
     'pass' => $form_state['values']['pass'],
    );
  $account_unchanged = clone $account;

  user_save($account_unchanged, $edit_user);
  $form_state['redirect'] = 'user/'.$form_state['user']->uid.'/password';
  drupal_set_message('密码修改成功');
}

 

分享到:
评论

相关推荐

    H3BPM 试用系统操作手册

    b) 此时,可以修改表单的值,提交流程后,可以将新值更新到数据库表; c) 同【供应商入库】的查询确认,可以在URL中加上Code的参数值,可查询最新数据信息; 3.5.2 审核后创建(WS和DB)/从WebService和DB获取 ...

    Java EE常用框架.xmind

    资源实例就资源类型的具体化,比如:用户id为001的修改连接,1110班的用户信息、行政部的员工。细粒度权限管理就是数据级别的权限管理。 Shiro认证流程 ModularRealmAuthenticator作用进行认证,需要调用realm...

    基于JSP+JavaBean+Servlet三层架构员工考勤管理系统源码+数据库+项目说明.zip

    从输入框输入数据,在servlet层通过request.getParameter()获取form表单提交的参数,将获得的用户名、密码作为参数调用dao层的方法进行查询数据库,select * from t_user_info where username=? andpassword =? 如果...

    VS2010开发的图形化工作流OA

    个人设置 设置个人参数、邮箱参数、提醒参数、修改密码等 审批流程 新建工作 新建新的审批工作流,选定需要的工作新建即可 我的工作 个人发起的所有工作,包括已审批、未审批的所有工作 待办工作 需要当前用户进行...

    新版协同办公平台OA(Vs2010,C#,Sql Server)

    个人设置 设置个人参数、邮箱参数、提醒参数、修改密码等 审批流程 新建工作 新建新的审批工作流,选定需要的工作新建即可 我的工作 个人发起的所有工作,包括已审批、未审批的所有工作 待办工作 需要当前...

    vc++ 应用源码包_1

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    vc++ 应用源码包_2

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    vc++ 应用源码包_6

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    vc++ 应用源码包_3

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    vc++ 应用源码包_5

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    entfrm-boot可视化开发平台-其他

    entfrm-boot是一个以模块化为核心的无代码开发平台,是一个集PC和APP快速开发、系统管理、运维监控、开发工具、OAuth2授权、可视化数据源管理与数据构建、API动态生成与统计、工作流、智能表单设计、微服务骨架等全...

    vc++ 开发实例源码包

    清楚internet临时文件、Cookie的清除、游览器地址栏历史地址的清除、清楚表单自动完成历史记录、清楚自动密码历史记录、清除收藏夹中的内容、清除RAS自动拨号历史记录、清除系统临时文件夹、清空回收站、清除"运行...

    php网络开发完全手册

    2.4 流程控制语法 30 2.4.1 程序控制语句的简介 30 2.4.2 条件控制语句 30 2.4.3 循环控制语句 33 2.4.4 转移控制语句 35 2.5 表达式 36 2.5.1 简单的表达式例子 36 2.5.2 表达式的分类 36 2.5.3 算术操作表达式 36 ...

    PHP和MySQL Web开发第4版pdf以及源码

    16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 ...

    PHP和MySQL WEB开发(第4版)

    16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 ...

    PHP和MySQL Web开发第4版

    16.6.1 用户和权限系统 16.6.2发送数据至服务器 16.6.3 连接服务器 16.6.4 运行服务器 16.7 保护网络 16.7.1 安装防火墙 16.7.2使用隔离区域(DMZ) 16.7.3应对DoS和DDoS攻击 16.8 计算机和操作系统的安全性 16.8.1 ...

    java源码包---java 源码 大量 实例

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java源码包2

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    java源码包3

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics