【问题标题】:Concrete5 5.6/7 programaticly adding user and enriching attributesConcrete5 5.6/7 以编程方式添加用户和丰富属性
【发布时间】:2015-07-05 10:41:47
【问题描述】:
丰富c5用户属性的最佳方法是什么。
我有包含用户信息的非 C5 表,此信息是在旧 cms(非 c5)上创建的,我现在用 c5 构建新站点,想知道迁移用户的最佳方法。
使用 SQL 查询是个好主意还是我应该使用 php 脚本来丰富,我已经在 c5 中创建了用户并手动添加了“锚点”的电子邮件地址以供以后丰富。
如果有人能说出或可能会引出一些例子,那将非常高兴。
【问题讨论】:
标签:
php
mysql
concrete5
concrete
concrete5-5.7
【解决方案1】:
最终由我自己管理,相当简单:
我将外部用户导出到 php 数组并使用 c5 用户函数添加用户,并在丰富他们之后我的示例:
$external_users = array({
array('id'=>'1', 'name'='JON', 'email'=>'blank@blank.blank', 'last_name'=>'DOE', 'attr1'=>'smthing', 'attr2'=>'123'),
array(...), ...
});
foreach($external_users as $singleUser_data){
$email = $singleUser_data['email'];
$ui = UserInfo::getByEmail($email);
if (!is_null($ui)) {
// Email is already in use, so let's not create the user
return;
}
$userData['uName'] = $singleUser_data['name']." ".$singleUser_data['lastname'];
//users later need to reset password
$userData['uPassword'] = 'asd52465465456454asd';
$userData['uPasswordConfirm'] = 'asd52465465456454asd';
//user registererd
$ui = UserInfo::register($userData);
set_new_user_group($ui);
enrichAtributes($ui, $singleUser_data);
}
function set_new_user_group($ui){
// assign the new user to a group
$g = Group::getByName('GroupName');
$u = $ui->getUserObject();
$u->enterGroup($g);
}
function enrichAtributes($ui, $singleUser_data){
$ui->setAttribute('atr_handler1', $singleUser_data['attr1']);
$ui->setAttribute('atr_handler2', $singleUser_data['attr2']);
}
资源:
User registration programaticly and seting group
User information documentation (setting attributes)