Ejemplo n.º 1
0
        /// <summary>
        /// 保存系统用户
        /// </summary>
        /// <param name="created_user_id"></param>
        /// <param name="entity"></param>
        /// <param name="employee"></param>
        /// <param name="rIds"></param>
        /// <param name="pIds"></param>
        /// <returns></returns>
        public StateCode SaveUser(long created_user_id, SysUser entity, Employee employee, string rIds, string pIds)
        {
            //角色ID
            long[] roleIds = StringHelper.StringToLongArray(rIds);
            //权限ID
            long[] permissionIds = StringHelper.StringToLongArray(pIds);

            using (ISession s = SessionFactory.Instance.CreateSession())
            {
                s.StartTransaction();
                try
                {
                    if (entity.id == 0)
                    {
                        //是否是管理员
                        entity.is_manager = false;
                        //登录次数
                        entity.login_count = 0;
                        //创建用户ID
                        entity.created_user_id = created_user_id;
                        //创建时间
                        entity.created_date = DateTime.Now;
                        //密码
                        entity.pass_word = StringHelper.ConvertTo32BitSHA1(ConfigManage.AppSettings <string>("AppSettings:DefaultPassWord"));
                        //插入用户数据
                        s.Insert(entity);

                        //对应系统用户
                        employee.sys_user_id = entity.id;
                        //插入用户对应员工数据
                        s.Insert(employee);
                    }
                    else
                    {
                        //修改用户实体
                        s.Update(entity);
                        int exist = s.Exist <Employee>("where sys_user_id = @0", entity.id);
                        if (exist == 0)
                        {
                            s.Insert(employee);
                        }
                        else
                        {
                            s.Update(employee);
                        }
                    }

                    //用户角色处理
                    s.ExcuteUpdate("delete tb_sys_user_role where sysuser_id = @0", entity.id);
                    if (roleIds != null && roleIds.Count() > 0)
                    {
                        for (int i = 0; i < roleIds.Length; i++)
                        {
                            UserRole ur = new UserRole();
                            ur.sysuser_id = entity.id;
                            ur.role_id    = roleIds[i];
                            s.Insert <UserRole>(ur);
                        }
                    }

                    //用户权限处理
                    s.ExcuteUpdate("delete tb_sys_user_permission where sysuser_id=@0", entity.id);
                    if (permissionIds != null && permissionIds.Count() > 0)
                    {
                        for (int i = 0; i < permissionIds.Length; i++)
                        {
                            SysUserPermission up = new SysUserPermission();
                            up.sysuser_id    = entity.id;
                            up.permission_id = permissionIds[i];
                            s.Insert(up);
                        }
                    }

                    s.Commit();
                    return(StateCode.State_200);
                }
                catch (Exception ex)
                {
                    s.RollBack();
                    return(StateCode.State_500);
                }
            }
        }
Ejemplo n.º 2
0
 public SysUserPermissionExistException(SysUserPermission _permission, Exception innerException) : base(O2.Languages.Errors.SYSUSERPERMISSION_ALREADY_EXISTS.Replace("{K}", _permission.key), "_key", innerException)
 {
 }